diff --git a/packages/database/src/seed/data/extra-recipes.ts b/packages/database/src/seed/data/extra-recipes.ts index 66203cf..f37c0b1 100644 --- a/packages/database/src/seed/data/extra-recipes.ts +++ b/packages/database/src/seed/data/extra-recipes.ts @@ -2148,7 +2148,7 @@ export const EXTRA_RECIPES: SeedRecipe[] = [ mealPrepFriendly: false, freezerFriendly: true, peakSeasons: [], - holidayTags: ["fika"], + holidayTags: ["fika", "alla-hjartans-dag"], variantType: "standard", dnaCarb: "flour_wheat", dnaVegetables: [], @@ -2429,7 +2429,7 @@ export const EXTRA_RECIPES: SeedRecipe[] = [ mealPrepFriendly: true, freezerFriendly: false, peakSeasons: [], - holidayTags: [], + holidayTags: ["oktoberfest"], variantType: "standard", dnaProtein: "falukorv", dnaVegetables: ["potato"], @@ -2459,4 +2459,619 @@ export const EXTRA_RECIPES: SeedRecipe[] = [ }, ], }, + // --------------------------------------------------------------------------- + // HÖGTIDER (spec §28) – recept taggade med exakt högtids-slug (SE-marknad) så + // "Vad ska vi äta?"-högtidsknapparna alltid visar relevant mat. Slugs måste + // matcha seasonEvents.ts exakt: jul, midsommar, påsk, nyår, kraftskiva, + // grillsasong, skolstart, surstromming (ASCII – inte "grillsäsong"!). + // --------------------------------------------------------------------------- + { + slug: "rodbetssallad", + titleSv: "Klassisk rödbetssallad", + descriptionSv: + "Krämig rödbetssallad med äpple – det självklara röda inslaget på jul- och påskbordet, gott till skinka och sill.", + cuisine: "swedish", + mealTypes: ["buffet", "starter"], + tags: ["vegetarian", "gluten_free"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 15, + cookMin: 0, + portions: 8, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: ["winter"], + holidayTags: ["jul", "påsk", "nyår"], + variantType: "standard", + dnaVegetables: ["beetroot", "apple"], + dnaFlavor: ["sweet", "sour", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "beetroot", nameSv: "Inlagda rödbetor", qty: 300, unit: "GRAM", optional: false }, + { ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false }, + { ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 2, unit: "DECILITER", optional: false }, + { ing: "mayonnaise", nameSv: "Majonnäs", 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: true }, + ], + steps: [ + { text: "Låt rödbetorna rinna av ordentligt i ett durkslag och tärna dem smått." }, + { text: "Kärna ur och tärna äpplet lika smått som rödbetorna." }, + { text: "Rör ihop crème fraiche och majonnäs och vänd försiktigt ner rödbetor och äpple." }, + { + text: "Smaka av med salt och peppar. Låt gärna stå kallt en timme så smakerna sätter sig.", + }, + ], + }, + { + slug: "rodkal", + titleSv: "Långkokt rödkål", + descriptionSv: + "Mjuk, sötsyrlig rödkål som får puttra med äpple och lite balsamvinäger – ett givet tillbehör på julbordet.", + cuisine: "swedish", + mealTypes: ["buffet"], + tags: ["vegetarian", "gluten_free", "budget"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "easy", + prepMin: 15, + cookMin: 45, + portions: 8, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: ["winter"], + holidayTags: ["jul", "nyår"], + variantType: "standard", + dnaVegetables: ["red_cabbage", "apple"], + dnaFlavor: ["sweet", "sour", "buttery"], + verificationStatus: "editorial", + ingredients: [ + { ing: "red_cabbage", nameSv: "Rödkål", qty: 600, unit: "GRAM", optional: false }, + { ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Socker", qty: 30, unit: "GRAM", optional: false }, + { ing: "balsamic_vinegar", nameSv: "Balsamvinäger", qty: 40, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + ], + steps: [ + { text: "Strimla rödkålen fint och riv eller tärna äpplet." }, + { text: "Smält smöret i en vid gryta och lägg i rödkål och äpple. Låt fräsa några minuter." }, + { text: "Tillsätt socker, balsamvinäger och salt samt ett par matskedar vatten." }, + { + text: "Lägg på lock och låt sjuda på svag värme tills kålen är mjuk och blank, cirka 40 minuter. Rör om då och då.", + }, + ], + }, + { + slug: "senapssill", + titleSv: "Senapssill", + descriptionSv: + "Inlagd sill i len senapssås med dill – en av de självklara sillsorterna till jul, påsk och midsommar.", + cuisine: "swedish", + mealTypes: ["buffet", "starter"], + tags: ["gluten_free", "high_protein"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 10, + cookMin: 0, + portions: 6, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: ["winter", "summer"], + holidayTags: ["jul", "påsk", "midsommar", "nyår"], + variantType: "standard", + dnaProtein: "pickled_herring", + dnaVegetables: [], + dnaFlavor: ["tangy", "mustard", "dill"], + verificationStatus: "editorial", + ingredients: [ + { ing: "pickled_herring", nameSv: "Inlagd sill", qty: 300, unit: "GRAM", optional: false }, + { ing: "mustard", nameSv: "Sötstark senap", qty: 60, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Socker", qty: 25, unit: "GRAM", optional: false }, + { ing: "cream", nameSv: "Grädde", qty: 1, unit: "DECILITER", optional: false }, + { ing: "olive_oil", nameSv: "Rapsolja", qty: 2, unit: "TABLESPOON", optional: false }, + { ing: "dill", nameSv: "Dill", qty: 20, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Låt sillbitarna rinna av och skär dem i lagom munsbitar." }, + { + text: "Vispa ihop senap, socker och olja till en slät röra. Vispa ner grädden så såsen blir krämig.", + }, + { text: "Hacka dillen och rör ner det mesta i såsen." }, + { + text: "Vänd ner sillen, toppa med resten av dillen och låt stå kallt minst en timme före servering.", + }, + ], + }, + { + slug: "stekt-prinskorv", + titleSv: "Stekta prinskorvar", + descriptionSv: + "Gyllene, knapriga prinskorvar stekta i smör – julbordets favorit bland både barn och vuxna.", + cuisine: "swedish", + mealTypes: ["buffet"], + tags: ["kid_friendly", "quick", "gluten_free"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 5, + cookMin: 10, + portions: 6, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["winter"], + holidayTags: ["jul", "nyår"], + variantType: "standard", + dnaProtein: "prinskorv", + dnaVegetables: [], + dnaFlavor: ["savory", "buttery"], + verificationStatus: "editorial", + ingredients: [ + { ing: "prinskorv", nameSv: "Prinskorv", qty: 400, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Klipp eventuellt av korvarna från varandra och snitta dem lätt om du vill." }, + { text: "Smält smöret i en stekpanna på medelvärme." }, + { + text: "Stek prinskorvarna under omrörning tills de är gyllene och genomvarma, cirka 8 minuter. Servera direkt.", + }, + ], + }, + { + slug: "kokta-kraftor-med-dill", + titleSv: "Kokta kräftor med krondill", + descriptionSv: + "Kräftor kokta i klassisk dillag med socker och salt – själva mittpunkten på kräftskivan i augusti.", + cuisine: "swedish", + mealTypes: ["buffet", "dinner"], + tags: ["high_protein", "gluten_free", "luxury"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "medium", + prepMin: 15, + cookMin: 15, + portions: 6, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: ["summer", "autumn"], + holidayTags: ["kraftskiva"], + variantType: "standard", + dnaProtein: "crayfish", + dnaVegetables: [], + dnaFlavor: ["dill", "briny", "sweet"], + verificationStatus: "editorial", + ingredients: [ + { ing: "crayfish", nameSv: "Kräftor", qty: 1000, unit: "GRAM", optional: false }, + { ing: "dill", nameSv: "Krondill", qty: 50, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 100, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Socker", qty: 20, unit: "GRAM", optional: false }, + ], + steps: [ + { + text: "Koka upp cirka 2 liter vatten med salt, socker och hälften av krondillen. Låt lagen sjuda 10 minuter så smaken sätter sig.", + }, + { text: "Lägg i kräftorna, koka upp igen och låt sjuda cirka 6–8 minuter." }, + { text: "Ta grytan från värmen och lägg i resten av krondillen." }, + { + text: "Låt kräftorna kallna i lagen, gärna över natten i kylen, så de får full dillsmak. Servera väl kylda.", + }, + ], + }, + { + slug: "aioli-till-skaldjur", + titleSv: "Vitlöksaioli", + descriptionSv: + "Slät, vitlöksstark aioli som passar perfekt till kräftor, räkor och västerbottenpaj på skaldjursbordet.", + cuisine: "swedish", + mealTypes: ["buffet", "starter"], + tags: ["vegetarian", "gluten_free"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 10, + cookMin: 0, + portions: 8, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: ["summer"], + holidayTags: ["kraftskiva", "nyår", "grillsasong"], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["garlic", "creamy", "tangy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "mayonnaise", nameSv: "Majonnäs", qty: 200, unit: "GRAM", optional: false }, + { ing: "garlic", nameSv: "Vitlöksklyfta", qty: 2, unit: "COUNT", optional: false }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false }, + { ing: "lemon", nameSv: "Citron", qty: 1, unit: "COUNT", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: true }, + ], + steps: [ + { text: "Pressa eller riv vitlöken fint." }, + { text: "Rör ihop majonnäs, vitlök och olivolja till en slät kräm." }, + { + text: "Smaka av med pressad citron och salt. Låt stå kallt minst 30 minuter innan servering.", + }, + ], + }, + { + slug: "ostbricka-till-kraftskivan", + titleSv: "Ostbricka med västerbottensost", + descriptionSv: + "En enkel ostbricka med kraftig västerbottensost, lagrad hårdost, druvor och valnötter – det goda avslutet på kräftskivan.", + cuisine: "swedish", + mealTypes: ["buffet", "snack"], + tags: ["vegetarian"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 10, + cookMin: 0, + portions: 8, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["summer", "autumn"], + holidayTags: ["kraftskiva", "nyår"], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["savory", "nutty", "sweet"], + verificationStatus: "editorial", + ingredients: [ + { + ing: "vasterbotten_cheese", + nameSv: "Västerbottensost", + qty: 200, + unit: "GRAM", + optional: false, + }, + { ing: "cheese_hard", nameSv: "Lagrad hårdost", qty: 200, unit: "GRAM", optional: false }, + { ing: "grape", nameSv: "Vindruvor", qty: 200, unit: "GRAM", optional: false }, + { ing: "walnut", nameSv: "Valnötter", qty: 50, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Ta fram ostarna en stund före servering så de får rumstemperatur och full smak." }, + { text: "Skär ostarna i bitar eller klyftor och lägg upp på en bricka." }, + { + text: "Skölj druvorna och dela dem i mindre klasar. Fördela dem och valnötterna på brickan.", + }, + ], + }, + { + slug: "farskpotatis-med-dill", + titleSv: "Färskpotatis med smör och dill", + descriptionSv: + "Nykokt färskpotatis vänd i smör och färsk dill – midsommarbordets doftande självklarhet.", + cuisine: "swedish", + mealTypes: ["buffet", "lunch", "dinner"], + tags: ["vegetarian", "gluten_free", "budget"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 10, + cookMin: 20, + portions: 6, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["summer"], + holidayTags: ["midsommar"], + variantType: "standard", + dnaCarb: "new_potato", + dnaVegetables: [], + dnaFlavor: ["dill", "buttery"], + verificationStatus: "editorial", + ingredients: [ + { ing: "new_potato", nameSv: "Färskpotatis", qty: 800, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 40, unit: "GRAM", optional: false }, + { ing: "dill", nameSv: "Dill", qty: 30, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 2, unit: "TEASPOON", optional: false }, + ], + steps: [ + { + text: "Borsta färskpotatisen ren och koka den i lättsaltat vatten tills den är mjuk, cirka 18 minuter.", + }, + { text: "Häll av vattnet och låt potatisen ånga av." }, + { + text: "Vänd ner smöret så det smälter runt potatisen och strö över rikligt med hackad dill. Salta efter smak.", + }, + ], + }, + { + slug: "agghalvor-med-rakror", + titleSv: "Ägghalvor med räkröra", + descriptionSv: + "Kokta ägg toppade med krämig räkröra och dill – en klassiker på påskbordet och det kalla buffébordet.", + cuisine: "swedish", + mealTypes: ["buffet", "starter"], + tags: ["high_protein", "gluten_free"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "easy", + prepMin: 15, + cookMin: 10, + portions: 6, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["spring"], + holidayTags: ["påsk", "nyår"], + variantType: "standard", + dnaProtein: "egg", + dnaVegetables: [], + dnaFlavor: ["creamy", "dill", "briny"], + verificationStatus: "editorial", + ingredients: [ + { ing: "egg", nameSv: "Ägg", qty: 6, unit: "COUNT", optional: false }, + { ing: "shrimp", nameSv: "Räkor", qty: 200, unit: "GRAM", optional: false }, + { ing: "mayonnaise", nameSv: "Majonnäs", qty: 80, unit: "GRAM", optional: false }, + { ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 1, unit: "DECILITER", optional: false }, + { ing: "dill", nameSv: "Dill", qty: 15, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Hårdkoka äggen cirka 8 minuter, spola kalla och skala dem. Dela dem på längden." }, + { text: "Blanda majonnäs och crème fraiche och vänd ner de flesta räkorna och hackad dill." }, + { text: "Klicka räkröran på ägghalvorna och toppa med resten av räkorna och lite dill." }, + ], + }, + { + slug: "rakcocktail", + titleSv: "Räkcocktail", + descriptionSv: + "Handskalade räkor på frisk sallad med len röd cocktailsås – en elegant förrätt till nyår och fest.", + cuisine: "swedish", + mealTypes: ["starter", "buffet"], + tags: ["high_protein", "luxury", "gluten_free"], + methods: ["no_cook"], + equipment: [], + difficulty: "easy", + prepMin: 15, + cookMin: 0, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["winter"], + holidayTags: ["nyår", "påsk"], + variantType: "standard", + dnaProtein: "shrimp", + dnaVegetables: [], + dnaFlavor: ["creamy", "tangy", "briny"], + verificationStatus: "editorial", + ingredients: [ + { ing: "shrimp", nameSv: "Handskalade räkor", qty: 300, unit: "GRAM", optional: false }, + { ing: "lettuce", nameSv: "Isbergssallad", qty: 1, unit: "COUNT", optional: false }, + { ing: "mayonnaise", nameSv: "Majonnäs", qty: 100, unit: "GRAM", optional: false }, + { ing: "tomato_paste", nameSv: "Tomatpuré", qty: 30, unit: "GRAM", optional: false }, + { ing: "lemon", nameSv: "Citron", qty: 1, unit: "COUNT", optional: false }, + ], + steps: [ + { text: "Strimla salladen fint och fördela i portionsglas." }, + { + text: "Rör ihop majonnäs och tomatpuré till en slät rosa sås och smaka av med pressad citron.", + }, + { text: "Lägg räkorna på salladen, klicka på såsen och toppa med en citronklyfta." }, + ], + }, + { + slug: "grillspett-med-halloumi", + titleSv: "Grillspett med halloumi och grönsaker", + descriptionSv: + "Färgglada grillspett med halloumi, paprika och zucchini – enkelt och vegetariskt på grillkvällen.", + cuisine: "swedish", + mealTypes: ["dinner", "lunch"], + tags: ["vegetarian", "gluten_free", "quick"], + methods: ["grill"], + equipment: ["grill"], + difficulty: "easy", + prepMin: 15, + cookMin: 10, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["summer"], + holidayTags: ["grillsasong", "valborg"], + variantType: "standard", + dnaProtein: "halloumi", + dnaVegetables: ["bell_pepper", "zucchini"], + dnaFlavor: ["savory", "smoky", "salty"], + verificationStatus: "editorial", + ingredients: [ + { ing: "halloumi", nameSv: "Halloumi", qty: 250, unit: "GRAM", optional: false }, + { ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false }, + { ing: "zucchini", nameSv: "Zucchini", qty: 1, unit: "COUNT", optional: false }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false }, + ], + steps: [ + { text: "Skär halloumi, paprika och zucchini i jämnstora bitar." }, + { text: "Trä omväxlande halloumi och grönsaker på spett och pensla med olivolja." }, + { + text: "Grilla spetten på medelvärme och vänd dem tills halloumin fått fin färg och grönsakerna mjuknat, cirka 8 minuter.", + }, + ], + }, + { + slug: "grillad-kycklingfile", + titleSv: "Grillad kycklingfilé med paprika", + descriptionSv: + "Saftig kycklingfilé marinerad i olivolja, vitlök och paprikapulver – en trygg favorit hela grillsäsongen.", + cuisine: "swedish", + mealTypes: ["dinner", "lunch"], + tags: ["high_protein", "gluten_free"], + methods: ["grill"], + equipment: ["grill"], + difficulty: "easy", + prepMin: 15, + cookMin: 15, + portions: 4, + spiceLevel: 1, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: ["summer"], + holidayTags: ["grillsasong"], + variantType: "standard", + dnaProtein: "chicken_breast", + dnaVegetables: [], + dnaFlavor: ["garlic", "paprika", "smoky"], + verificationStatus: "editorial", + ingredients: [ + { ing: "chicken_breast", nameSv: "Kycklingfilé", qty: 600, unit: "GRAM", optional: false }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false }, + { ing: "garlic", nameSv: "Vitlöksklyfta", qty: 2, unit: "COUNT", optional: false }, + { ing: "paprika_powder", nameSv: "Paprikapulver", qty: 2, unit: "TEASPOON", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + ], + steps: [ + { text: "Rör ihop olivolja, pressad vitlök, paprikapulver och salt till en marinad." }, + { text: "Vänd kycklingfiléerna i marinaden och låt dem gärna stå kallt 30 minuter." }, + { + text: "Grilla filéerna på medelvärme tills de är genomstekta, cirka 6–7 minuter per sida. Låt vila några minuter före servering.", + }, + ], + }, + { + slug: "pastasallad-i-matlada", + titleSv: "Pastasallad i matlådan", + descriptionSv: + "Enkel, matig pastasallad med fetaost och paprika – perfekt att förbereda för skolstartens matlådor och luncher.", + cuisine: "swedish", + mealTypes: ["lunch"], + tags: ["vegetarian", "meal_prep", "budget", "batch_cooking"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 15, + cookMin: 10, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: ["autumn"], + holidayTags: ["skolstart"], + variantType: "standard", + dnaCarb: "pasta_dry", + dnaVegetables: ["bell_pepper", "tomato"], + dnaFlavor: ["savory", "salty", "fresh"], + verificationStatus: "editorial", + ingredients: [ + { ing: "pasta_dry", nameSv: "Pasta", qty: 300, unit: "GRAM", optional: false }, + { ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false }, + { ing: "tomato", nameSv: "Tomat", qty: 200, unit: "GRAM", optional: false }, + { ing: "feta", nameSv: "Fetaost", qty: 150, unit: "GRAM", optional: false }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false }, + ], + steps: [ + { text: "Koka pastan enligt anvisning på paketet, spola kall och låt rinna av." }, + { text: "Tärna paprika och tomat och smula fetaosten." }, + { + text: "Blanda pasta, grönsaker och fetaost med olivolja. Salta efter smak och fördela i matlådor.", + }, + ], + }, + { + slug: "tillbehor-till-surstromming", + titleSv: "Tillbehör till surströmming", + descriptionSv: + "Klassiska tillbehör till surströmmingsskivan: nykokt mandelpotatis, hackad rödlök, gräddig färskost och västerbottensost.", + cuisine: "swedish", + mealTypes: ["buffet", "dinner"], + tags: ["gluten_free"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 15, + cookMin: 20, + portions: 6, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: ["summer", "autumn"], + holidayTags: ["surstromming"], + variantType: "standard", + dnaCarb: "new_potato", + dnaVegetables: [], + dnaFlavor: ["savory", "sharp", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "new_potato", nameSv: "Mandelpotatis", qty: 600, unit: "GRAM", optional: false }, + { ing: "red_onion", nameSv: "Rödlök", qty: 100, unit: "GRAM", optional: false }, + { + ing: "creme_fraiche", + nameSv: "Gräddfil eller crème fraiche", + qty: 2, + unit: "DECILITER", + optional: false, + }, + { + ing: "vasterbotten_cheese", + nameSv: "Västerbottensost", + qty: 150, + unit: "GRAM", + optional: false, + }, + ], + steps: [ + { + text: "Koka mandelpotatisen mjuk i lättsaltat vatten, cirka 18 minuter, och låt den svalna något.", + }, + { text: "Hacka rödlöken fint och riv västerbottensosten." }, + { + text: "Ställ fram potatis, rödlök, gräddfil och riven ost i skålar så var och en kan bygga sin egen klämma.", + }, + ], + }, + { + slug: "kryddig-kyckling-med-ris", + titleSv: "Kryddig kyckling med ris", + descriptionSv: + "Mör kyckling långsamt fräst med lök, vitlök och varma kryddor, serverad på fluffigt ris \u2013 en festmåltid som passar fint till Eid och andra högtidsmiddagar.", + cuisine: "middle_eastern", + mealTypes: ["dinner", "buffet"], + tags: ["high_protein", "gluten_free"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "easy", + prepMin: 15, + cookMin: 35, + portions: 4, + spiceLevel: 1, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: [], + holidayTags: ["eid"], + variantType: "standard", + dnaProtein: "chicken_thigh", + dnaCarb: "rice_white", + dnaVegetables: [], + dnaFlavor: ["warm_spice", "garlic", "savory"], + verificationStatus: "editorial", + ingredients: [ + { ing: "chicken_thigh", nameSv: "Kycklinglårfilé", qty: 600, unit: "GRAM", optional: false }, + { ing: "rice_white", nameSv: "Ris", qty: 300, unit: "GRAM", optional: false }, + { ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false }, + { ing: "garlic", nameSv: "Vitlöksklyfta", qty: 2, unit: "COUNT", optional: false }, + { ing: "garam_masala", nameSv: "Garam masala", qty: 6, unit: "GRAM", optional: false }, + { ing: "turmeric", nameSv: "Gurkmeja", qty: 3, unit: "GRAM", optional: false }, + { ing: "olive_oil", nameSv: "Olja", qty: 2, unit: "TABLESPOON", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + ], + steps: [ + { text: "Koka riset enligt anvisningen på paketet och håll det varmt." }, + { text: "Skär kycklingen i bitar. Hetta upp oljan och fräs hackad lök och vitlök mjuk." }, + { text: "Lägg i kycklingen och krydda med garam masala, gurkmeja och salt. Bryn runt om." }, + { + text: "Häll i en skvätt vatten, lägg på lock och låt sjuda tills kycklingen är genomstekt och mör, cirka 20 minuter. Servera på riset.", + }, + ], + }, ]; diff --git a/packages/database/src/seed/data/verified-recipes.ts b/packages/database/src/seed/data/verified-recipes.ts index 68e1a08..ab07340 100644 --- a/packages/database/src/seed/data/verified-recipes.ts +++ b/packages/database/src/seed/data/verified-recipes.ts @@ -801,7 +801,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [ mealPrepFriendly: true, freezerFriendly: true, peakSeasons: ["autumn", "winter"], - holidayTags: [], + holidayTags: ["halloween"], variantType: "standard", dnaVegetables: ["canned_tomatoes", "onion", "basil"], dnaFlavor: ["tomato", "herby", "comforting"], @@ -898,7 +898,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [ mealPrepFriendly: true, freezerFriendly: true, peakSeasons: ["autumn", "winter"], - holidayTags: [], + holidayTags: ["skolstart"], storageGuidanceSv: "Håller 4 dagar i kyl, fryser utmärkt i portionslådor.", variantType: "standard", dnaProtein: "minced_beef", @@ -1147,7 +1147,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [ mealPrepFriendly: true, freezerFriendly: true, peakSeasons: [], - holidayTags: [], + holidayTags: ["skolstart"], storageGuidanceSv: "Såsen håller 3 dagar i kyl och fryser utmärkt.", variantType: "standard", dnaProtein: "minced_beef", @@ -1260,7 +1260,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [ mealPrepFriendly: false, freezerFriendly: false, peakSeasons: ["summer"], - holidayTags: [], + holidayTags: ["grillsasong"], variantType: "standard", dnaProtein: "feta", dnaVegetables: ["tomato", "cucumber", "red_onion", "olives"], @@ -1358,7 +1358,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [ mealPrepFriendly: true, freezerFriendly: true, peakSeasons: ["summer"], - holidayTags: ["midsommar", "jul"], + holidayTags: ["midsommar", "jul", "kraftskiva"], storageGuidanceSv: "Håller 3 dagar i kyl. Kan bakas dagen innan och värmas.", variantType: "standard", dnaProtein: "vasterbotten_cheese", @@ -1822,7 +1822,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [ mealPrepFriendly: false, freezerFriendly: false, peakSeasons: ["summer"], - holidayTags: ["grillsäsong"], + holidayTags: ["grillsasong", "valborg"], variantType: "standard", dnaProtein: "halloumi", dnaCarb: "hamburger_bun", diff --git a/packages/database/test/extra-recipes.test.ts b/packages/database/test/extra-recipes.test.ts index a6d1ff2..893d4d6 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 59 recept", () => { - expect(EXTRA_RECIPES.length).toBeGreaterThanOrEqual(59); + it("har minst 74 recept", () => { + expect(EXTRA_RECIPES.length).toBeGreaterThanOrEqual(74); }); it("alla ingrediens-id:n finns i katalogen (run.ts rad 675)", () => {