feat(recept): stor pafyllning i alla kategorier (+30 recept, totalt 59 extra)
Bred handskriven batch sa alla kategorier ar valfyllda (var extremt middagstung forut): - Frukost: omelett, amerikanska pannkakor, yoghurt m granola, avokadomacka, blabarssmoothie. - Lunch: broccolisoppa, grekisk sallad, kycklingwrap, tomat-linssoppa, varm skinkmacka. - Mellanmal: hummus, gronsaksstavar m dipp, notmix, fruktspett. - Efterratt: chokladdoppade jordgubbar, hallonsorbet, chokladpudding, appelkompott, bar m vaniljyoghurt. - Bak (sub-typer): vitt formbrod + scones (bread), havreflarn (cookie), blabarsmuffins + chokladtarta (cake), rabarberpaj (pie). - Middag: ugnsbakad lax, kremig kycklinggryta, pastagratang, fiskgryta m kokos, korv-potatisgratang. Alla med verifierade ingredienser + berakningsbara enheter + ratt kategori. Ravaror med genomstekning/genomkokning har explicit matsakerhetssteg. Invariant-testet kor riktig computeRecipeNutrition pa alla 59 (grona). Typecheck gront.
This commit is contained in:
@@ -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,
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
@@ -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)", () => {
|
||||
|
||||
Reference in New Issue
Block a user