diff --git a/packages/database/src/seed/data/extra-recipes.ts b/packages/database/src/seed/data/extra-recipes.ts index 26404ee..66203cf 100644 --- a/packages/database/src/seed/data/extra-recipes.ts +++ b/packages/database/src/seed/data/extra-recipes.ts @@ -1237,4 +1237,1226 @@ export const EXTRA_RECIPES: SeedRecipe[] = [ }, ], }, + + // =========================================================================== + // BATCH: bred påfyllning i alla kategorier (handskrivet, verifierade + // ingredienser + beräkningsbara enheter, rätt kategori per recept). + // =========================================================================== + + // --- FRUKOST --- + { + slug: "ostomelett", + titleSv: "Ostomelett", + descriptionSv: "Fluffig omelett med riven ost – snabb, mättande frukost eller lunch.", + cuisine: "swedish", + mealTypes: ["breakfast"], + tags: ["vegetarian", "high_protein", "quick"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 3, + cookMin: 6, + portions: 1, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaProtein: "egg", + dnaVegetables: [], + dnaFlavor: ["savory", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT", optional: false }, + { ing: "milk_3", nameSv: "Mjölk", qty: 0.5, unit: "DECILITER", optional: false }, + { ing: "cheese_hard", nameSv: "Hårdost", qty: 50, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 15, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false }, + { ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false }, + ], + steps: [ + { text: "Vispa ihop ägg, mjölk, salt och peppar." }, + { text: "Smält smöret i en stekpanna på medelvärme och häll i äggen." }, + { + text: "Låt stelna tills omeletten är genomstekt och inte längre rinnig, strö över osten och vik ihop.", + }, + ], + }, + { + slug: "amerikanska-pannkakor", + titleSv: "Amerikanska pannkakor", + descriptionSv: "Tjocka, fluffiga plättar som passar till helgfrukosten. Goda med bär och sylt.", + cuisine: "international", + mealTypes: ["breakfast"], + tags: ["vegetarian", "kid_friendly"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 10, + cookMin: 10, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: true, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaCarb: "flour_wheat", + dnaVegetables: [], + dnaFlavor: ["sweet", "mild"], + verificationStatus: "editorial", + ingredients: [ + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 300, unit: "GRAM", optional: false }, + { ing: "milk_3", nameSv: "Mjölk", qty: 3, unit: "DECILITER", optional: false }, + { ing: "egg", nameSv: "Ägg", qty: 2, unit: "COUNT", optional: false }, + { ing: "baking_powder", nameSv: "Bakpulver", qty: 10, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 30, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false }, + ], + steps: [ + { + text: "Vispa ihop mjöl, bakpulver, socker och salt. Tillsätt ägg och mjölk till en slät smet.", + }, + { text: "Rör i det smälta smöret och låt smeten vila 10 minuter." }, + { text: "Stek pannkakorna gyllene på medelvärme, cirka en minut per sida. Servera med bär." }, + ], + }, + { + slug: "yoghurt-med-granola-och-bar", + titleSv: "Yoghurt med granola och bär", + descriptionSv: "Krämig yoghurt med rostade havregryn, nötter, honung och bär.", + cuisine: "international", + mealTypes: ["breakfast"], + tags: ["vegetarian", "quick"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 5, + cookMin: 0, + portions: 1, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["creamy", "sweet", "nutty"], + verificationStatus: "editorial", + ingredients: [ + { + ing: "yoghurt_natural", + nameSv: "Naturell yoghurt", + qty: 2, + unit: "DECILITER", + optional: false, + }, + { ing: "oats", nameSv: "Havregryn", qty: 40, unit: "GRAM", optional: false }, + { ing: "blueberry", nameSv: "Blåbär", qty: 75, unit: "GRAM", optional: false }, + { ing: "walnut", nameSv: "Valnötter", qty: 15, unit: "GRAM", optional: true }, + { ing: "honey", nameSv: "Honung", qty: 15, unit: "GRAM", optional: true }, + ], + steps: [ + { text: "Häll upp yoghurten i en skål." }, + { text: "Toppa med havregryn, blåbär, hackade valnötter och en skvätt honung." }, + ], + }, + { + slug: "avokadomacka-med-agg", + titleSv: "Avokadomacka med ägg", + descriptionSv: "Rostat surdegsbröd med krämig avokado och skivat kokt ägg.", + cuisine: "international", + mealTypes: ["breakfast"], + tags: ["vegetarian", "high_protein"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 5, + cookMin: 8, + portions: 1, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["fresh", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "bread_sourdough", nameSv: "Surdegsbröd", qty: 2, unit: "COUNT", optional: false }, + { ing: "avocado", nameSv: "Avokado", qty: 1, unit: "COUNT", optional: false }, + { ing: "egg", nameSv: "Ägg", qty: 2, unit: "COUNT", optional: false }, + { ing: "lemon", nameSv: "Citron", qty: 0.25, unit: "COUNT", optional: true }, + { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false }, + { ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false }, + ], + steps: [ + { text: "Koka äggen hårda i 8 minuter, spola kalla och skala." }, + { text: "Mosa avokadon med lite citron, salt och peppar och bred på rostat bröd." }, + { text: "Toppa med skivat ägg och lite extra peppar." }, + ], + }, + { + slug: "blabarssmoothie", + titleSv: "Blåbärssmoothie", + descriptionSv: "Frisk smoothie på blåbär, banan och yoghurt – snabb energi på morgonen.", + cuisine: "international", + mealTypes: ["breakfast", "snack"], + tags: ["vegetarian", "kid_friendly", "quick"], + methods: ["no_cook"], + equipment: ["blender"], + difficulty: "beginner", + prepMin: 5, + cookMin: 0, + portions: 2, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["fruity", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "blueberry", nameSv: "Blåbär", qty: 150, unit: "GRAM", optional: false }, + { ing: "banana", nameSv: "Banan", qty: 1, unit: "COUNT", optional: false }, + { + ing: "yoghurt_natural", + nameSv: "Naturell yoghurt", + qty: 2, + unit: "DECILITER", + optional: false, + }, + { ing: "oat_drink", nameSv: "Havredryck", qty: 1, unit: "DECILITER", optional: true }, + { ing: "honey", nameSv: "Honung", qty: 15, unit: "GRAM", optional: true }, + ], + steps: [{ text: "Mixa alla ingredienser slätt och häll upp i glas." }], + }, + + // --- LUNCH --- + { + slug: "broccolisoppa", + titleSv: "Krämig broccolisoppa", + descriptionSv: "Len broccolisoppa med potatis och en klick grädde. Snabb vardagslunch.", + cuisine: "swedish", + mealTypes: ["lunch", "dinner"], + tags: ["vegetarian", "budget", "quick"], + methods: ["stovetop"], + equipment: ["stove", "blender"], + difficulty: "beginner", + prepMin: 10, + cookMin: 20, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: ["broccoli", "potato"], + dnaFlavor: ["savory", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "broccoli", nameSv: "Broccoli", qty: 2, unit: "COUNT", optional: false }, + { ing: "potato", nameSv: "Potatis", qty: 2, unit: "COUNT", optional: false }, + { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false }, + { ing: "garlic", nameSv: "Vitlök", qty: 1, unit: "COUNT", optional: false }, + { + ing: "vegetable_stock_cube", + nameSv: "Grönsaksbuljongtärning", + qty: 2, + unit: "COUNT", + optional: false, + }, + { + ing: "cooking_cream", + nameSv: "Matlagningsgrädde", + qty: 1, + unit: "DECILITER", + optional: false, + }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + { ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false }, + ], + steps: [ + { + text: "Fräs hackad lök och vitlök mjuka. Tillsätt tärnad potatis, broccolibuketter, buljongtärningar och 8 dl vatten.", + }, + { text: "Sjud tills grönsakerna är mjuka, cirka 15 minuter." }, + { text: "Mixa slätt, rör i grädden och smaka av med salt och peppar." }, + ], + }, + { + slug: "grekisk-sallad-med-feta", + titleSv: "Grekisk sallad med feta", + descriptionSv: "Fräsch sallad med tomat, gurka, rödlök, oliver och fetaost.", + cuisine: "greek", + mealTypes: ["lunch"], + tags: ["vegetarian", "quick"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 15, + cookMin: 0, + portions: 2, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["summer"], + holidayTags: [], + variantType: "standard", + dnaVegetables: ["tomato", "cucumber"], + dnaFlavor: ["fresh", "savory"], + verificationStatus: "editorial", + ingredients: [ + { ing: "tomato", nameSv: "Tomat", qty: 3, unit: "COUNT", optional: false }, + { ing: "cucumber", nameSv: "Gurka", qty: 0.5, unit: "COUNT", optional: false }, + { ing: "red_onion", nameSv: "Rödlök", qty: 0.5, unit: "COUNT", optional: false }, + { ing: "feta", nameSv: "Fetaost", qty: 150, unit: "GRAM", optional: false }, + { ing: "olives", nameSv: "Oliver", qty: 50, unit: "GRAM", optional: true }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false }, + { ing: "oregano_dried", nameSv: "Oregano", qty: 1, unit: "TEASPOON", optional: false }, + ], + steps: [ + { text: "Skär tomat och gurka i bitar och skiva rödlöken tunt." }, + { text: "Blanda grönsakerna med oliver, ringla över olivolja och strö över oregano." }, + { text: "Toppa med fetaost i bit eller smulad." }, + ], + }, + { + slug: "kycklingwrap", + titleSv: "Kycklingwrap", + descriptionSv: "Mjuk tortilla med stekt kyckling, krispig sallad och krämig dressing.", + cuisine: "international", + mealTypes: ["lunch"], + tags: ["high_protein", "quick"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 10, + cookMin: 10, + portions: 2, + spiceLevel: 1, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaProtein: "chicken_breast", + dnaVegetables: ["lettuce", "tomato"], + dnaFlavor: ["savory", "fresh"], + verificationStatus: "editorial", + ingredients: [ + { ing: "tortilla", nameSv: "Tortillabröd", qty: 2, unit: "COUNT", optional: false }, + { ing: "chicken_breast", nameSv: "Kycklingfilé", qty: 250, unit: "GRAM", optional: false }, + { ing: "lettuce", nameSv: "Sallad", qty: 0.5, unit: "COUNT", optional: false }, + { ing: "tomato", nameSv: "Tomat", qty: 1, unit: "COUNT", optional: false }, + { ing: "mayonnaise", nameSv: "Majonnäs", qty: 40, unit: "GRAM", optional: false }, + { ing: "paprika_powder", nameSv: "Paprikapulver", qty: 1, unit: "TEASPOON", optional: false }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false }, + ], + steps: [ + { text: "Skär kycklingen i strimlor, krydda med paprikapulver och salt." }, + { text: "Stek i olja tills kycklingen är genomstekt och inte längre rosa i mitten." }, + { + text: "Fyll tortillabröden med sallad, tomat, kyckling och en klick majonnäs och rulla ihop.", + }, + ], + }, + { + slug: "tomat-och-linssoppa", + titleSv: "Tomat- och linssoppa", + descriptionSv: "Matig soppa på röda linser och tomat med värmande spiskummin.", + cuisine: "international", + mealTypes: ["lunch", "dinner"], + tags: ["vegan", "budget", "batch_cooking"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 10, + cookMin: 25, + portions: 4, + spiceLevel: 1, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: ["tomato", "onion"], + dnaFlavor: ["savory", "spiced"], + verificationStatus: "editorial", + ingredients: [ + { ing: "red_lentils", nameSv: "Röda linser", qty: 200, unit: "GRAM", optional: false }, + { + ing: "canned_tomatoes", + nameSv: "Krossade tomater", + qty: 1, + unit: "COUNT", + optional: false, + }, + { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false }, + { ing: "garlic", nameSv: "Vitlök", qty: 2, unit: "COUNT", optional: false }, + { + ing: "vegetable_stock_cube", + nameSv: "Grönsaksbuljongtärning", + qty: 2, + unit: "COUNT", + optional: false, + }, + { ing: "cumin", nameSv: "Spiskummin", qty: 2, unit: "TEASPOON", optional: false }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + ], + steps: [ + { text: "Fräs hackad lök, vitlök och spiskummin mjuka i oljan." }, + { text: "Tillsätt sköljda linser, krossade tomater, buljongtärningar och 7 dl vatten." }, + { text: "Sjud tills linserna är mjuka, cirka 20 minuter. Smaka av med salt." }, + ], + }, + { + slug: "varm-skinkmacka", + titleSv: "Varm skinkmacka", + descriptionSv: "Rostad macka med skinka, ost och tomat – snabb och matig.", + cuisine: "swedish", + mealTypes: ["lunch", "breakfast"], + tags: ["high_protein", "quick"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "beginner", + prepMin: 5, + cookMin: 8, + portions: 1, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["savory"], + verificationStatus: "editorial", + ingredients: [ + { ing: "bread_sourdough", nameSv: "Surdegsbröd", qty: 2, unit: "COUNT", optional: false }, + { ing: "cooked_ham", nameSv: "Skinka", qty: 60, unit: "GRAM", optional: false }, + { ing: "cheese_hard", nameSv: "Hårdost", qty: 60, unit: "GRAM", optional: false }, + { ing: "tomato", nameSv: "Tomat", qty: 1, unit: "COUNT", optional: true }, + ], + steps: [ + { text: "Lägg skinka, skivad tomat och riven ost på brödet." }, + { text: "Gratinera i ugnen tills osten smält och fått färg, cirka 6–8 minuter." }, + ], + }, + + // --- MELLANMÅL --- + { + slug: "hummus", + titleSv: "Hummus på kikärtor", + descriptionSv: "Krämig kikärtsröra med vitlök, citron och olivolja. Gott att doppa i.", + cuisine: "international", + mealTypes: ["snack"], + tags: ["vegan", "high_protein", "budget"], + methods: ["no_cook"], + equipment: ["blender"], + difficulty: "beginner", + prepMin: 10, + cookMin: 0, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["savory", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "chickpeas_canned", nameSv: "Kikärtor", qty: 400, unit: "GRAM", optional: false }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 3, unit: "TABLESPOON", optional: false }, + { ing: "garlic", nameSv: "Vitlök", qty: 1, unit: "COUNT", optional: false }, + { ing: "lemon", nameSv: "Citron", qty: 0.5, unit: "COUNT", optional: false }, + { ing: "cumin", nameSv: "Spiskummin", qty: 1, unit: "TEASPOON", optional: true }, + { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false }, + ], + steps: [ + { text: "Skölj och låt kikärtorna rinna av." }, + { + text: "Mixa kikärtor, olivolja, vitlök, pressad citron, spiskummin och salt slätt. Späd med lite vatten om det behövs.", + }, + ], + }, + { + slug: "gronsaksstavar-med-dipp", + titleSv: "Grönsaksstavar med dipp", + descriptionSv: "Krispiga morots-, gurk- och paprikastavar med krämig örtdipp.", + cuisine: "international", + mealTypes: ["snack"], + tags: ["vegetarian", "kid_friendly", "quick"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 10, + cookMin: 0, + portions: 2, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: ["carrot", "cucumber"], + dnaFlavor: ["fresh", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "carrot", nameSv: "Morot", qty: 2, unit: "COUNT", optional: false }, + { ing: "cucumber", nameSv: "Gurka", qty: 0.5, unit: "COUNT", optional: false }, + { ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false }, + { ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 1, unit: "DECILITER", optional: false }, + { ing: "dill", nameSv: "Dill", qty: 5, unit: "GRAM", optional: true }, + { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false }, + ], + steps: [ + { text: "Skär morot, gurka och paprika i stavar." }, + { text: "Rör ihop crème fraiche med hackad dill och salt till en dipp." }, + ], + }, + { + slug: "notmix", + titleSv: "Nöt- och fruktmix", + descriptionSv: "Energigivande blandning av nötter, russin och bitar av mörk choklad.", + cuisine: "international", + mealTypes: ["snack"], + tags: ["vegan", "quick"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 3, + cookMin: 0, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["nutty", "sweet"], + verificationStatus: "editorial", + ingredients: [ + { ing: "walnut", nameSv: "Valnötter", qty: 60, unit: "GRAM", optional: false }, + { ing: "hazelnut", nameSv: "Hasselnötter", qty: 60, unit: "GRAM", optional: false }, + { ing: "raisins", nameSv: "Russin", qty: 50, unit: "GRAM", optional: false }, + { ing: "dark_chocolate", nameSv: "Mörk choklad", qty: 40, unit: "GRAM", optional: true }, + ], + steps: [{ text: "Blanda nötter, russin och grovhackad choklad. Förvara i en burk." }], + }, + { + slug: "fruktspett", + titleSv: "Fruktspett", + descriptionSv: "Färgglada spett med jordgubbar, banan, äpple och vindruvor.", + cuisine: "international", + mealTypes: ["snack"], + tags: ["vegan", "kid_friendly", "quick"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 10, + cookMin: 0, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["summer"], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["fruity", "fresh"], + verificationStatus: "editorial", + ingredients: [ + { ing: "strawberry", nameSv: "Jordgubbar", qty: 200, unit: "GRAM", optional: false }, + { ing: "banana", nameSv: "Banan", qty: 1, unit: "COUNT", optional: false }, + { ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false }, + { ing: "grape", nameSv: "Vindruvor", qty: 150, unit: "GRAM", optional: false }, + ], + steps: [{ text: "Skär frukten i bitar och trä upp på spett. Servera direkt." }], + }, + + // --- EFTERRÄTT --- + { + slug: "chokladdoppade-jordgubbar", + titleSv: "Chokladdoppade jordgubbar", + descriptionSv: "Söta jordgubbar doppade i smält mörk choklad – enkel och festlig efterrätt.", + cuisine: "international", + mealTypes: ["dessert"], + tags: ["vegetarian", "quick"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 10, + cookMin: 5, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["summer"], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["sweet", "chocolate", "fruity"], + verificationStatus: "editorial", + ingredients: [ + { ing: "strawberry", nameSv: "Jordgubbar", qty: 300, unit: "GRAM", optional: false }, + { ing: "dark_chocolate", nameSv: "Mörk choklad", qty: 150, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Smält chokladen försiktigt i vattenbad." }, + { + text: "Doppa jordgubbarna till hälften i chokladen och lägg på bakplåtspapper tills chokladen stelnat.", + }, + ], + }, + { + slug: "hallonsorbet", + titleSv: "Hallonsorbet", + descriptionSv: "Frisk, iskall sorbet på hallon – helt utan mejeri.", + cuisine: "international", + mealTypes: ["dessert"], + tags: ["vegan", "kid_friendly"], + methods: ["no_cook"], + equipment: ["blender"], + difficulty: "beginner", + prepMin: 10, + cookMin: 0, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: ["summer"], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["fruity", "sweet", "tart"], + verificationStatus: "editorial", + ingredients: [ + { ing: "raspberry", nameSv: "Hallon", qty: 500, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 100, unit: "GRAM", optional: false }, + { ing: "lemon", nameSv: "Citron", qty: 0.5, unit: "COUNT", optional: false }, + ], + steps: [ + { text: "Mixa frysta hallon med socker och pressad citron till en slät sorbet." }, + { text: "Servera direkt eller frys in och rör om då och då." }, + ], + }, + { + slug: "chokladpudding", + titleSv: "Chokladpudding", + descriptionSv: "Krämig, kokt chokladpudding – barnens favorit till efterrätt.", + cuisine: "swedish", + mealTypes: ["dessert"], + tags: ["vegetarian", "kid_friendly"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 5, + cookMin: 10, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["sweet", "chocolate", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "milk_3", nameSv: "Mjölk", qty: 6, unit: "DECILITER", optional: false }, + { ing: "cocoa", nameSv: "Kakao", qty: 30, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 80, unit: "GRAM", optional: false }, + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 40, unit: "GRAM", optional: false }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + ], + steps: [ + { + text: "Vispa ihop kakao, socker, mjöl och vaniljsocker med lite av mjölken till en slät smet.", + }, + { + text: "Koka upp resten av mjölken, rör i smeten och sjud under omrörning tills puddingen tjocknar.", + }, + { text: "Häll upp i formar och låt kallna." }, + ], + }, + { + slug: "appelkompott", + titleSv: "Äppelkompott", + descriptionSv: "Mjuk, kaneldoftande äppelkompott – god till gröt, glass eller pannkakor.", + cuisine: "swedish", + mealTypes: ["dessert"], + tags: ["vegan", "quick"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 10, + cookMin: 15, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: ["autumn"], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["fruity", "cinnamon", "sweet"], + verificationStatus: "editorial", + ingredients: [ + { ing: "apple", nameSv: "Äpple", qty: 5, unit: "COUNT", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 60, unit: "GRAM", optional: false }, + { ing: "cinnamon", nameSv: "Kanel", qty: 1, unit: "TEASPOON", optional: false }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: true }, + ], + steps: [ + { text: "Skala och tärna äpplena." }, + { + text: "Sjud äpplen, socker, kanel, vaniljsocker och en skvätt vatten under lock tills äpplena är mjuka, cirka 10–15 minuter.", + }, + ], + }, + { + slug: "bar-med-vaniljyoghurt", + titleSv: "Bär med vaniljyoghurt", + descriptionSv: "Färska bär med len vaniljyoghurt och en skvätt honung.", + cuisine: "international", + mealTypes: ["dessert", "snack"], + tags: ["vegetarian", "quick"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 5, + cookMin: 0, + portions: 2, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["summer"], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["fruity", "creamy", "sweet"], + verificationStatus: "editorial", + ingredients: [ + { ing: "strawberry", nameSv: "Jordgubbar", qty: 150, unit: "GRAM", optional: false }, + { ing: "blueberry", nameSv: "Blåbär", qty: 100, unit: "GRAM", optional: false }, + { + ing: "yoghurt_natural", + nameSv: "Naturell yoghurt", + qty: 3, + unit: "DECILITER", + optional: false, + }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + { ing: "honey", nameSv: "Honung", qty: 15, unit: "GRAM", optional: true }, + ], + steps: [ + { text: "Rör ihop yoghurten med vaniljsocker." }, + { text: "Toppa med bären och en skvätt honung." }, + ], + }, + + // --- BAKA (sub-typer: bread/bun/pie/cake/cookie) --- + { + slug: "vitt-formbrod", + titleSv: "Vitt formbröd", + descriptionSv: "Saftigt formbröd som är lätt att baka och perfekt till frukost och mackor.", + cuisine: "swedish", + mealTypes: ["breakfast"], + tags: ["baking", "bread", "vegetarian"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "medium", + prepMin: 30, + cookMin: 30, + portions: 16, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaCarb: "flour_wheat", + dnaVegetables: [], + dnaFlavor: ["bread", "mild"], + verificationStatus: "editorial", + ingredients: [ + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 700, unit: "GRAM", optional: false }, + { ing: "milk_3", nameSv: "Mjölk", qty: 4, unit: "DECILITER", optional: false }, + { ing: "yeast_fresh", nameSv: "Jäst", qty: 25, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 50, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 2, unit: "TEASPOON", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 20, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Smält smöret, rör ner mjölken och värm till fingervarmt. Lös upp jästen." }, + { text: "Tillsätt salt, socker och mjöl och arbeta degen smidig. Jäs 40 minuter." }, + { text: "Forma till ett bröd, lägg i smord form och jäs 30 minuter till." }, + { + text: "Grädda i nedre delen av ugnen tills brödet låter ihåligt när man knackar på undersidan.", + temperatureC: 200, + }, + ], + }, + { + slug: "scones", + titleSv: "Scones", + descriptionSv: "Snabba frukostscones utan jäsning – klara på en kvart.", + cuisine: "swedish", + mealTypes: ["breakfast"], + tags: ["baking", "bread", "vegetarian", "quick"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "beginner", + prepMin: 10, + cookMin: 12, + portions: 8, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: true, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaCarb: "flour_wheat", + dnaVegetables: [], + dnaFlavor: ["bread", "mild"], + verificationStatus: "editorial", + ingredients: [ + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 300, unit: "GRAM", optional: false }, + { ing: "baking_powder", nameSv: "Bakpulver", qty: 15, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 50, unit: "GRAM", optional: false }, + { ing: "milk_3", nameSv: "Mjölk", qty: 3, unit: "DECILITER", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 15, unit: "GRAM", optional: true }, + ], + steps: [ + { + text: "Blanda mjöl, bakpulver, salt och socker. Nyp ihop med smöret till en smulig massa.", + }, + { text: "Rör i mjölken till en lös deg. Forma två runda kakor och skär kryss i dem." }, + { text: "Grädda högt upp i ugnen tills gyllene, cirka 10–12 minuter.", temperatureC: 250 }, + ], + }, + { + slug: "havreflarn", + titleSv: "Havreflarn", + descriptionSv: "Frasiga, gyllene havrekakor – enkla att baka och svåra att sluta äta.", + cuisine: "swedish", + mealTypes: ["dessert"], + tags: ["baking", "cookie", "vegetarian", "kid_friendly"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "beginner", + prepMin: 10, + cookMin: 10, + portions: 20, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: [], + holidayTags: ["fika"], + variantType: "standard", + dnaCarb: "oats", + dnaVegetables: [], + dnaFlavor: ["sweet", "buttery"], + verificationStatus: "editorial", + ingredients: [ + { ing: "oats", nameSv: "Havregryn", qty: 150, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 150, unit: "GRAM", optional: false }, + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 40, unit: "GRAM", optional: false }, + { ing: "egg", nameSv: "Ägg", qty: 1, unit: "COUNT", optional: false }, + { ing: "baking_powder", nameSv: "Bakpulver", qty: 5, unit: "GRAM", optional: false }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Rör ihop smält smör med socker, ägg och vaniljsocker." }, + { text: "Blanda i havregryn, mjöl och bakpulver." }, + { + text: "Klicka ut små högar med god plats emellan och grädda gyllene, cirka 8–10 minuter.", + temperatureC: 175, + }, + ], + }, + { + slug: "blabarsmuffins", + titleSv: "Blåbärsmuffins", + descriptionSv: "Saftiga muffins fyllda med blåbär – perfekta till fikat eller matlådan.", + cuisine: "international", + mealTypes: ["dessert", "snack"], + tags: ["baking", "cake", "vegetarian", "kid_friendly"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "beginner", + prepMin: 15, + cookMin: 20, + portions: 12, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: [], + holidayTags: ["fika"], + variantType: "standard", + dnaCarb: "flour_wheat", + dnaVegetables: [], + dnaFlavor: ["sweet", "fruity"], + verificationStatus: "editorial", + ingredients: [ + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 250, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 150, unit: "GRAM", optional: false }, + { ing: "egg", nameSv: "Ägg", qty: 2, unit: "COUNT", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false }, + { ing: "milk_3", nameSv: "Mjölk", qty: 1, unit: "DECILITER", optional: false }, + { ing: "baking_powder", nameSv: "Bakpulver", qty: 10, unit: "GRAM", optional: false }, + { ing: "blueberry", nameSv: "Blåbär", qty: 150, unit: "GRAM", optional: false }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Vispa ägg och socker pösigt. Rör i smält smör och mjölk." }, + { text: "Vänd ner mjöl, bakpulver och vaniljsocker och sist blåbären." }, + { + text: "Fördela i muffinsformar och grädda tills gyllene, cirka 20 minuter.", + temperatureC: 175, + }, + ], + }, + { + slug: "chokladtarta", + titleSv: "Chokladtårta", + descriptionSv: "Riktigt chokladig, saftig tårta för den som älskar choklad. Godast med grädde.", + cuisine: "swedish", + mealTypes: ["dessert"], + tags: ["baking", "cake", "vegetarian"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "medium", + prepMin: 20, + cookMin: 30, + portions: 12, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: true, + peakSeasons: [], + holidayTags: ["fika"], + variantType: "standard", + dnaCarb: "flour_wheat", + dnaVegetables: [], + dnaFlavor: ["sweet", "chocolate"], + verificationStatus: "editorial", + ingredients: [ + { ing: "dark_chocolate", nameSv: "Mörk choklad", qty: 150, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 150, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 200, unit: "GRAM", optional: false }, + { ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT", optional: false }, + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 120, unit: "GRAM", optional: false }, + { ing: "cocoa", nameSv: "Kakao", qty: 20, unit: "GRAM", optional: false }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Smält choklad och smör tillsammans och låt svalna något." }, + { text: "Vispa ägg och socker pösigt och rör ner chokladsmeten." }, + { text: "Vänd i mjöl, kakao och vaniljsocker. Häll i smord form." }, + { + text: "Grädda tills ytan stelnat men mitten är kladdig, cirka 25–30 minuter.", + temperatureC: 175, + }, + ], + }, + { + slug: "rabarberpaj", + titleSv: "Rabarberpaj", + descriptionSv: "Syrlig rabarber under ett gyllene smuldeg-lock – vårens klassiker.", + cuisine: "swedish", + mealTypes: ["dessert"], + tags: ["baking", "pie", "vegetarian"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "beginner", + prepMin: 15, + cookMin: 25, + portions: 6, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: true, + peakSeasons: ["spring", "summer"], + holidayTags: [], + variantType: "standard", + dnaCarb: "oats", + dnaVegetables: [], + dnaFlavor: ["sweet", "tart"], + verificationStatus: "editorial", + ingredients: [ + { ing: "rhubarb", nameSv: "Rabarber", qty: 500, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 100, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false }, + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 150, unit: "GRAM", optional: false }, + { ing: "oats", nameSv: "Havregryn", qty: 80, unit: "GRAM", optional: false }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Skär rabarbern i bitar och lägg i en smord form med hälften av sockret." }, + { text: "Nyp ihop smör, mjöl, havregryn, vaniljsocker och resten av sockret till ett smul." }, + { + text: "Fördela smulet över rabarbern och grädda gyllene, cirka 25 minuter.", + temperatureC: 200, + }, + ], + }, + + // --- MIDDAG --- + { + slug: "ugnsbakad-lax-med-potatis", + titleSv: "Ugnsbakad lax med potatis", + descriptionSv: "Saftig laxfilé i ugn med citron och dill, serverad med kokt potatis.", + cuisine: "swedish", + mealTypes: ["dinner"], + tags: ["high_protein"], + methods: ["oven"], + equipment: ["oven", "stove"], + difficulty: "beginner", + prepMin: 10, + cookMin: 25, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaProtein: "salmon", + dnaVegetables: ["potato"], + dnaFlavor: ["savory", "fresh"], + verificationStatus: "editorial", + ingredients: [ + { ing: "salmon", nameSv: "Laxfilé", qty: 600, unit: "GRAM", optional: false }, + { ing: "potato", nameSv: "Potatis", qty: 8, unit: "COUNT", optional: false }, + { ing: "lemon", nameSv: "Citron", qty: 1, unit: "COUNT", optional: false }, + { ing: "dill", nameSv: "Dill", qty: 10, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 30, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + { ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false }, + ], + steps: [ + { text: "Koka potatisen mjuk i saltat vatten." }, + { + text: "Lägg laxen i en smord ugnsform, salta och peppra, toppa med smörklickar och citronskivor.", + }, + { + text: "Baka i ugnen tills laxen är genomstekt och flagnar lätt, cirka 15–18 minuter. Strö över dill och servera med potatisen.", + temperatureC: 200, + }, + ], + }, + { + slug: "kremig-kycklinggryta", + titleSv: "Krämig kycklinggryta med svamp", + descriptionSv: "Mustig gryta med kyckling, champinjoner och grädde. Servera med ris.", + cuisine: "swedish", + mealTypes: ["dinner"], + tags: ["high_protein"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 10, + cookMin: 25, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: ["autumn"], + holidayTags: [], + variantType: "standard", + dnaProtein: "chicken_thigh", + dnaVegetables: ["mushroom"], + dnaFlavor: ["savory", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "chicken_thigh", nameSv: "Kycklinglårfilé", qty: 600, unit: "GRAM", optional: false }, + { ing: "mushroom", nameSv: "Champinjoner", qty: 250, unit: "GRAM", optional: false }, + { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false }, + { ing: "garlic", nameSv: "Vitlök", qty: 2, unit: "COUNT", optional: false }, + { + ing: "cooking_cream", + nameSv: "Matlagningsgrädde", + qty: 3, + unit: "DECILITER", + optional: false, + }, + { + ing: "chicken_stock_cube", + nameSv: "Kycklingbuljongtärning", + qty: 1, + unit: "COUNT", + optional: false, + }, + { ing: "rice_white", nameSv: "Ris", qty: 300, unit: "GRAM", optional: false }, + { ing: "thyme_dried", nameSv: "Timjan", qty: 1, unit: "TEASPOON", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + ], + steps: [ + { + text: "Bryn kycklingbitarna runt om i en gryta. Tillsätt lök, vitlök och champinjoner och fräs med.", + }, + { + text: "Häll i grädde, smulad buljongtärning, timjan och salt. Sjud tills kycklingen är genomstekt, cirka 15 minuter.", + }, + { text: "Koka riset enligt anvisning och servera till grytan." }, + ], + }, + { + slug: "pastagratang-med-gronsaker", + titleSv: "Pastagratäng med grönsaker", + descriptionSv: "Matig, ostgratinerad pastarätt med tomatsås och grönsaker.", + cuisine: "italian", + mealTypes: ["dinner"], + tags: ["vegetarian", "batch_cooking"], + methods: ["oven", "stovetop"], + equipment: ["oven", "stove"], + difficulty: "beginner", + prepMin: 15, + cookMin: 30, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaCarb: "pasta_dry", + dnaVegetables: ["zucchini", "bell_pepper"], + dnaFlavor: ["savory", "cheesy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "pasta_dry", nameSv: "Pasta", qty: 400, unit: "GRAM", optional: false }, + { + ing: "canned_tomatoes", + nameSv: "Krossade tomater", + qty: 1, + unit: "COUNT", + optional: false, + }, + { ing: "zucchini", nameSv: "Zucchini", qty: 1, unit: "COUNT", optional: false }, + { ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false }, + { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false }, + { ing: "garlic", nameSv: "Vitlök", qty: 2, unit: "COUNT", optional: false }, + { ing: "cheese_hard", nameSv: "Hårdost", qty: 150, unit: "GRAM", optional: false }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + ], + steps: [ + { text: "Koka pastan al dente. Fräs lök, vitlök, paprika och zucchini mjuka i oljan." }, + { text: "Tillsätt krossade tomater och salt och låt puttra några minuter." }, + { + text: "Blanda pasta och sås i en ugnsform, toppa med riven ost och gratinera tills gyllene.", + temperatureC: 225, + }, + ], + }, + { + slug: "fiskgryta-med-kokos", + titleSv: "Fiskgryta med kokos", + descriptionSv: "Mild, krämig gryta med torsk, tomat och kokosmjölk. Servera med ris.", + cuisine: "thai", + mealTypes: ["dinner"], + tags: ["high_protein"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 10, + cookMin: 20, + portions: 4, + spiceLevel: 2, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaProtein: "cod", + dnaVegetables: ["tomato"], + dnaFlavor: ["savory", "creamy", "spiced"], + verificationStatus: "editorial", + ingredients: [ + { ing: "cod", nameSv: "Torskfilé", qty: 600, unit: "GRAM", optional: false }, + { ing: "coconut_milk", nameSv: "Kokosmjölk", qty: 4, unit: "DECILITER", optional: false }, + { + ing: "canned_tomatoes", + nameSv: "Krossade tomater", + qty: 1, + unit: "COUNT", + optional: false, + }, + { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false }, + { ing: "garlic", nameSv: "Vitlök", qty: 2, unit: "COUNT", optional: false }, + { ing: "red_curry_paste", nameSv: "Röd currypasta", qty: 40, unit: "GRAM", optional: false }, + { ing: "rice_white", nameSv: "Ris", qty: 300, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false }, + ], + steps: [ + { + text: "Fräs lök, vitlök och currypasta. Tillsätt kokosmjölk och krossade tomater och koka upp.", + }, + { + text: "Lägg i torsken i bitar och sjud tills fisken är genomkokt och flagnar, cirka 8 minuter.", + }, + { text: "Smaka av med salt och servera med kokt ris." }, + ], + }, + { + slug: "korv-och-potatisgratang", + titleSv: "Korv- och potatisgratäng", + descriptionSv: "Snabb, barnvänlig gratäng med falukorv, potatis och gräddig ost.", + cuisine: "swedish", + mealTypes: ["dinner"], + tags: ["kid_friendly", "budget"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "beginner", + prepMin: 15, + cookMin: 40, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaProtein: "falukorv", + dnaVegetables: ["potato"], + dnaFlavor: ["savory", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "falukorv", nameSv: "Falukorv", qty: 400, unit: "GRAM", optional: false }, + { ing: "potato", nameSv: "Potatis", qty: 8, unit: "COUNT", optional: false }, + { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false }, + { + ing: "cooking_cream", + nameSv: "Matlagningsgrädde", + qty: 3, + unit: "DECILITER", + optional: false, + }, + { ing: "cheese_hard", nameSv: "Hårdost", qty: 100, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + { ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false }, + ], + steps: [ + { text: "Skiva potatis, lök och falukorv. Varva i en smord ugnsform." }, + { text: "Häll över grädde blandat med salt och peppar och toppa med riven ost." }, + { + text: "Gratinera i ugnen tills potatisen är mjuk och ytan gyllene, cirka 40 minuter.", + temperatureC: 200, + }, + ], + }, ]; diff --git a/packages/database/test/extra-recipes.test.ts b/packages/database/test/extra-recipes.test.ts index 08bd8c7..a6d1ff2 100644 --- a/packages/database/test/extra-recipes.test.ts +++ b/packages/database/test/extra-recipes.test.ts @@ -32,8 +32,8 @@ function sourcesFor( } describe("extrarecept – seed-invarianter", () => { - it("har minst 29 recept", () => { - expect(EXTRA_RECIPES.length).toBeGreaterThanOrEqual(29); + it("har minst 59 recept", () => { + expect(EXTRA_RECIPES.length).toBeGreaterThanOrEqual(59); }); it("alla ingrediens-id:n finns i katalogen (run.ts rad 675)", () => {