From 3fa5a878f1c9e2fc0ac2588ac50820d32d14279a Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 20 Aug 2026 01:00:55 +0000 Subject: [PATCH] feat(priser): schablonpris pa alla ingredienser (44 saknade) Alla 44 ingredienser utan defaultPriceMinorPerKg har fatt rimliga schablonpriser (kr/kg) sa det ALLTID finns en prisuppskattning; kvitto- priser forfinar sen. Verifierat: 0 ingredienser utan pris i DB. --- .../src/seed/data/ingredients-extra.ts | 1 + .../database/src/seed/data/ingredients.ts | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/packages/database/src/seed/data/ingredients-extra.ts b/packages/database/src/seed/data/ingredients-extra.ts index 64799da..d16b54d 100644 --- a/packages/database/src/seed/data/ingredients-extra.ts +++ b/packages/database/src/seed/data/ingredients-extra.ts @@ -227,6 +227,7 @@ export const EXTRA_INGREDIENTS: SeedIngredient[] = [ aliases: ["ghee", "klarnat smör", "klarnat smor"], }), ing("buttermilk", "Kärnmjölk", "Buttermilk", "mejeri", { + defaultPriceMinorPerKg: 1800, ...vgt, defaultUnit: "DECILITER", densityGPerMl: 1.03, diff --git a/packages/database/src/seed/data/ingredients.ts b/packages/database/src/seed/data/ingredients.ts index 7b561d9..1a8feee 100644 --- a/packages/database/src/seed/data/ingredients.ts +++ b/packages/database/src/seed/data/ingredients.ts @@ -990,49 +990,59 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ defaultPriceMinorPerKg: 35000, }), ing("saffron", "Saffran", "Saffron", "krydda", { + defaultPriceMinorPerKg: 5000000, n: { kcal: 310, p: 11, k: 65, f: 6 }, isVegan: true, isVegetarian: true, }), ing("yeast_fresh", "Jäst", "Fresh yeast", "skafferi", { + defaultPriceMinorPerKg: 12000, n: { kcal: 105, p: 9, k: 19, f: 2 }, isVegan: true, isVegetarian: true, }), ing("cooked_ham", "Kokt skinka (julskinka)", "Cooked ham", "chark", { + defaultPriceMinorPerKg: 9000, n: { kcal: 145, p: 18, k: 1, f: 8, mf: 3, salt: 2 }, isPork: true, }), ing("crayfish", "Kräftor", "Crayfish", "skaldjur", { + defaultPriceMinorPerKg: 20000, n: { kcal: 77, p: 16, k: 0, f: 1 }, allergens: ["crustaceans"], }), ing("cardamom", "Kardemumma", "Cardamom", "krydda", { + defaultPriceMinorPerKg: 40000, densityGPerMl: 0.45, n: { kcal: 311, p: 11, k: 68, f: 7 }, isVegan: true, isVegetarian: true, }), ing("almond_paste", "Mandelmassa", "Almond paste", "bakning", { + defaultPriceMinorPerKg: 8000, n: { kcal: 430, p: 9, k: 45, f: 24, s: 40 }, allergens: ["tree_nuts"], isVegetarian: true, }), ing("red_cabbage", "Rödkål", "Red cabbage", "gronsaker", { + defaultPriceMinorPerKg: 2000, n: { kcal: 31, p: 1.4, k: 7, f: 0.2, fib: 2 }, isVegan: true, isVegetarian: true, }), ing("lingonberry_jam", "Lingonsylt", "Lingonberry jam", "skafferi", { + defaultPriceMinorPerKg: 4000, n: { kcal: 200, p: 0.3, k: 49, f: 0.2, s: 45 }, isVegan: true, isVegetarian: true, }), ing("prinskorv", "Prinskorv", "Cocktail sausage", "chark", { + defaultPriceMinorPerKg: 8000, n: { kcal: 280, p: 11, k: 3, f: 25, mf: 9, salt: 2 }, isPork: true, }), ing("rye_flour", "Rågmjöl", "Rye flour", "skafferi", { + defaultPriceMinorPerKg: 2000, n: { kcal: 325, p: 9, k: 60, f: 2, fib: 14 }, containsGluten: true, allergens: ["gluten"], @@ -1040,6 +1050,7 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ isVegetarian: true, }), ing("grape", "Vindruvor", "Grapes", "frukt", { + defaultPriceMinorPerKg: 4000, n: { kcal: 69, p: 0.7, k: 18, f: 0.2, fib: 0.9, s: 15 }, isVegan: true, isVegetarian: true, @@ -1056,6 +1067,7 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ ], }), ing("beetroot", "Rödbetor", "Beetroot", "gronsaker", { + defaultPriceMinorPerKg: 2500, n: { kcal: 43, p: 1.6, k: 10, f: 0.2, fib: 2.8, s: 7 }, isVegan: true, isVegetarian: true, @@ -1074,34 +1086,40 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ ], }), ing("pea_shoots", "Ärtskott", "Pea shoots", "gronsaker", { + defaultPriceMinorPerKg: 12000, n: { kcal: 42, p: 4, k: 4, f: 0.5, fib: 2 }, isVegan: true, isVegetarian: true, aliases: ["ärtskott", "artskott", "ertskott", "artiskott", "pea shoots"], }), ing("balsamic_vinegar", "Balsamvinäger", "Balsamic vinegar", "skafferi", { + defaultPriceMinorPerKg: 6000, n: { kcal: 88, p: 0.5, k: 17, f: 0, s: 15 }, isVegan: true, isVegetarian: true, aliases: ["balsamvinäger", "balsamvinager", "balsamico", "balsamic vinegar", "vinäger"], }), ing("strawberry_jam", "Jordgubbssylt", "Strawberry jam", "skafferi", { + defaultPriceMinorPerKg: 4000, n: { kcal: 200, p: 0.3, k: 49, f: 0.2, s: 45 }, isVegan: true, isVegetarian: true, aliases: ["jordgubbssylt", "jordgubbsylt", "strawberry jam"], }), ing("fish_stock", "Fiskfond", "Fish stock", "skafferi", { + defaultPriceMinorPerKg: 8000, n: { kcal: 15, p: 1.5, k: 1, f: 0.5, salt: 6 }, allergens: ["fish"], aliases: ["fiskfond", "fisk fond", "fish stock"], }), ing("lobster_stock", "Hummerfond", "Lobster stock", "skafferi", { + defaultPriceMinorPerKg: 12000, n: { kcal: 20, p: 2, k: 1.5, f: 0.7, salt: 6 }, allergens: ["crustaceans"], aliases: ["hummerfond", "hummer fond", "lobster stock"], }), ing("cornichons", "Cornichoner", "Cornichons", "skafferi", { + defaultPriceMinorPerKg: 6000, n: { kcal: 11, p: 0.5, k: 2, f: 0.1, fib: 1, salt: 2 }, isVegan: true, isVegetarian: true, @@ -1117,54 +1135,63 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ }), // --- Utökning: bakning (för riktiga kakor/pajer/bullar) --- ing("vanilla_sugar", "Vaniljsocker", "Vanilla sugar", "bakning", { + defaultPriceMinorPerKg: 12000, n: { kcal: 400, p: 0, k: 99, f: 0, s: 98 }, isVegan: true, isVegetarian: true, aliases: ["vaniljsocker", "vanillasocker", "vanilla sugar"], }), ing("baking_powder", "Bakpulver", "Baking powder", "bakning", { + defaultPriceMinorPerKg: 6000, n: { kcal: 53, p: 0, k: 28, f: 0, salt: 25 }, isVegan: true, isVegetarian: true, aliases: ["bakpulver", "baking powder"], }), ing("baking_soda", "Bikarbonat", "Baking soda", "bakning", { + defaultPriceMinorPerKg: 4000, n: { kcal: 0, p: 0, k: 0, f: 0, salt: 27 }, isVegan: true, isVegetarian: true, aliases: ["bikarbonat", "natriumbikarbonat", "baking soda"], }), ing("cocoa", "Kakao", "Cocoa powder", "bakning", { + defaultPriceMinorPerKg: 12000, n: { kcal: 350, p: 20, k: 58, f: 14, mf: 8, fib: 33 }, isVegan: true, isVegetarian: true, aliases: ["kakao", "kakaopulver", "cocoa", "cocoa powder"], }), ing("dark_chocolate", "Mörk choklad", "Dark chocolate", "bakning", { + defaultPriceMinorPerKg: 12000, n: { kcal: 550, p: 6, k: 46, f: 38, mf: 24, s: 40 }, isVegan: true, isVegetarian: true, aliases: ["mörk choklad", "mork choklad", "choklad", "dark chocolate", "chocolate"], }), ing("powdered_sugar", "Florsocker", "Powdered sugar", "bakning", { + defaultPriceMinorPerKg: 2500, n: { kcal: 390, p: 0, k: 100, f: 0, s: 99 }, isVegan: true, isVegetarian: true, aliases: ["florsocker", "powdered sugar", "icing sugar"], }), ing("pearl_sugar", "Pärlsocker", "Pearl sugar", "bakning", { + defaultPriceMinorPerKg: 3000, n: { kcal: 400, p: 0, k: 100, f: 0, s: 100 }, isVegan: true, isVegetarian: true, aliases: ["pärlsocker", "parlsocker", "pearl sugar"], }), ing("desiccated_coconut", "Kokosflingor", "Desiccated coconut", "bakning", { + defaultPriceMinorPerKg: 6000, n: { kcal: 660, p: 7, k: 24, f: 64, mf: 57, fib: 16 }, isVegan: true, isVegetarian: true, aliases: ["kokosflingor", "kokos", "riven kokos", "desiccated coconut"], }), ing("raisins", "Russin", "Raisins", "bakning", { + defaultPriceMinorPerKg: 5000, n: { kcal: 299, p: 3, k: 79, f: 0.5, fib: 4, s: 59 }, isVegan: true, isVegetarian: true, @@ -1172,18 +1199,21 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ }), // --- Utökning: frukt & bär --- ing("blueberry", "Blåbär", "Blueberries", "frukt", { + defaultPriceMinorPerKg: 6000, n: { kcal: 57, p: 0.7, k: 12, f: 0.3, fib: 2.4, s: 10 }, isVegan: true, isVegetarian: true, aliases: ["blåbär", "blabar", "blueberries", "blueberry"], }), ing("raspberry", "Hallon", "Raspberries", "frukt", { + defaultPriceMinorPerKg: 9000, n: { kcal: 52, p: 1.2, k: 8, f: 0.7, fib: 6.5, s: 4 }, isVegan: true, isVegetarian: true, aliases: ["hallon", "raspberries", "raspberry"], }), ing("pear", "Päron", "Pear", "frukt", { + defaultPriceMinorPerKg: 3000, defaultUnit: "COUNT", gramsPerPiece: 170, n: { kcal: 57, p: 0.4, k: 15, f: 0.1, fib: 3, s: 10 }, @@ -1192,6 +1222,7 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ aliases: ["päron", "paron", "pear"], }), ing("orange", "Apelsin", "Orange", "frukt", { + defaultPriceMinorPerKg: 3000, defaultUnit: "COUNT", gramsPerPiece: 180, n: { kcal: 47, p: 0.9, k: 12, f: 0.1, fib: 2.4, s: 9 }, @@ -1200,6 +1231,7 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ aliases: ["apelsin", "orange"], }), ing("rhubarb", "Rabarber", "Rhubarb", "frukt", { + defaultPriceMinorPerKg: 3000, n: { kcal: 21, p: 0.9, k: 4.5, f: 0.2, fib: 1.8, s: 1 }, isVegan: true, isVegetarian: true, @@ -1207,6 +1239,7 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ }), // --- Utökning: nötter --- ing("walnut", "Valnötter", "Walnuts", "skafferi", { + defaultPriceMinorPerKg: 12000, n: { kcal: 654, p: 15, k: 14, f: 65, mf: 6, fib: 7 }, allergens: ["tree_nuts"], isVegan: true, @@ -1214,6 +1247,7 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ aliases: ["valnötter", "valnotter", "valnöt", "walnuts", "walnut"], }), ing("hazelnut", "Hasselnötter", "Hazelnuts", "skafferi", { + defaultPriceMinorPerKg: 12000, n: { kcal: 628, p: 15, k: 17, f: 61, mf: 4, fib: 10 }, allergens: ["tree_nuts"], isVegan: true, @@ -1222,12 +1256,14 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ }), // --- Utökning: grönsaker --- ing("cauliflower", "Blomkål", "Cauliflower", "gronsaker", { + defaultPriceMinorPerKg: 3000, n: { kcal: 25, p: 1.9, k: 5, f: 0.3, fib: 2 }, isVegan: true, isVegetarian: true, aliases: ["blomkål", "blomkal", "cauliflower"], }), ing("sweet_potato", "Sötpotatis", "Sweet potato", "gronsaker", { + defaultPriceMinorPerKg: 3000, defaultUnit: "COUNT", gramsPerPiece: 200, n: { kcal: 86, p: 1.6, k: 20, f: 0.1, fib: 3 }, @@ -1236,18 +1272,21 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ aliases: ["sötpotatis", "sotpotatis", "batat", "sweet potato"], }), ing("kale", "Grönkål", "Kale", "gronsaker", { + defaultPriceMinorPerKg: 4000, n: { kcal: 49, p: 4.3, k: 9, f: 0.9, fib: 4 }, isVegan: true, isVegetarian: true, aliases: ["grönkål", "gronkal", "kale"], }), ing("white_cabbage", "Vitkål", "White cabbage", "gronsaker", { + defaultPriceMinorPerKg: 1500, n: { kcal: 25, p: 1.3, k: 6, f: 0.1, fib: 2.5 }, isVegan: true, isVegetarian: true, aliases: ["vitkål", "vitkal", "kål", "kal", "white cabbage", "cabbage"], }), ing("green_beans", "Haricots verts", "Green beans", "gronsaker", { + defaultPriceMinorPerKg: 5000, n: { kcal: 31, p: 1.8, k: 7, f: 0.1, fib: 3.4 }, isVegan: true, isVegetarian: true, @@ -1255,11 +1294,13 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ }), // --- Utökning: protein & övrigt --- ing("tuna_canned", "Tonfisk (burk)", "Canned tuna", "fisk", { + defaultPriceMinorPerKg: 9000, n: { kcal: 116, p: 26, k: 0, f: 1 }, allergens: ["fish"], aliases: ["tonfisk", "tonfisk i vatten", "tonfisk på burk", "canned tuna", "tuna"], }), ing("couscous", "Couscous", "Couscous", "spannmal", { + defaultPriceMinorPerKg: 3000, n: { kcal: 376, p: 13, k: 77, f: 0.6, fib: 5 }, containsGluten: true, allergens: ["gluten"], @@ -1268,6 +1309,7 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ aliases: ["couscous", "kuskus"], }), ing("cottage_cheese", "Keso", "Cottage cheese", "mejeri", { + defaultPriceMinorPerKg: 4500, n: { kcal: 98, p: 11, k: 3.4, f: 4.3, mf: 2 }, allergens: ["milk"], containsLactose: true, @@ -1275,6 +1317,7 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ aliases: ["keso", "cottage cheese", "grynig färskost"], }), ing("turkey_breast", "Kalkonfilé", "Turkey breast", "kott_fagel", { + defaultPriceMinorPerKg: 12000, n: { kcal: 105, p: 24, k: 0, f: 1 }, aliases: ["kalkon", "kalkonfilé", "kalkonfile", "kalkonbröst", "turkey", "turkey breast"], }),