diff --git a/packages/database/src/seed/data/extra-recipes.ts b/packages/database/src/seed/data/extra-recipes.ts index 6453d3f..56b22f8 100644 --- a/packages/database/src/seed/data/extra-recipes.ts +++ b/packages/database/src/seed/data/extra-recipes.ts @@ -23,7 +23,7 @@ export const EXTRA_RECIPES: SeedRecipe[] = [ descriptionSv: "Mjuka, saftiga bullar med smörig kanelfyllning – den självklara fikan att baka en söndag.", cuisine: "swedish", - mealTypes: ["snack", "dessert"], + mealTypes: ["snack"], tags: ["baking", "vegetarian", "kid_friendly"], methods: ["oven"], equipment: ["oven"], @@ -74,7 +74,7 @@ export const EXTRA_RECIPES: SeedRecipe[] = [ titleSv: "Kardemummabullar", descriptionSv: "Doftande bullar där kardemumman får ta plats både i degen och i fyllningen.", cuisine: "swedish", - mealTypes: ["snack", "dessert"], + mealTypes: ["snack"], tags: ["baking", "vegetarian", "kid_friendly"], methods: ["oven"], equipment: ["oven"], @@ -439,9 +439,9 @@ export const EXTRA_RECIPES: SeedRecipe[] = [ slug: "risgrynsgrot", titleSv: "Risgrynsgröt", descriptionSv: - "Krämig risgrynsgröt kokt på mjölk, serverad med kanel, socker och en klick smör.", + "Krämig risgrynsgröt kokt på mjölk, serverad med kanel och socker. Klassisk frukost och självklar på julbordet.", cuisine: "swedish", - mealTypes: ["dessert", "breakfast"], + mealTypes: ["breakfast"], tags: ["vegetarian", "kid_friendly", "budget"], methods: ["stovetop"], equipment: ["stove"], @@ -453,7 +453,7 @@ export const EXTRA_RECIPES: SeedRecipe[] = [ mealPrepFriendly: true, freezerFriendly: false, peakSeasons: ["winter"], - holidayTags: [], + holidayTags: ["jul"], variantType: "standard", dnaCarb: "rice_white", dnaVegetables: [], @@ -679,4 +679,562 @@ export const EXTRA_RECIPES: SeedRecipe[] = [ { text: "Toppa salladen med den varma halloumin och servera direkt." }, ], }, + + // --------------------------------------------------------------------------- + // BAK & EFTERRÄTT (möjliga tack vare den breddade katalogen) + // --------------------------------------------------------------------------- + { + slug: "kladdkaka", + titleSv: "Kladdkaka", + descriptionSv: + "Seg, kladdig chokladkaka med krispig yta – klar på en kvart plus ugnstid. Godast lite kladdig i mitten.", + cuisine: "swedish", + mealTypes: ["dessert"], + tags: ["baking", "vegetarian", "kid_friendly"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "beginner", + prepMin: 10, + cookMin: 20, + portions: 8, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: true, + peakSeasons: [], + holidayTags: ["fika"], + variantType: "standard", + dnaCarb: "flour_wheat", + dnaVegetables: [], + dnaFlavor: ["sweet", "chocolate"], + verificationStatus: "editorial", + ingredients: [ + { ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 250, unit: "GRAM", optional: false }, + { ing: "egg", nameSv: "Ägg", qty: 2, unit: "COUNT", optional: false }, + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 120, unit: "GRAM", optional: false }, + { ing: "cocoa", nameSv: "Kakao", qty: 40, unit: "GRAM", optional: false }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false }, + ], + steps: [ + { text: "Smält smöret och låt svalna något. Vispa ihop socker och ägg." }, + { + text: "Rör ner mjöl, kakao, vaniljsocker och salt och blanda i det smälta smöret till en slät smet.", + }, + { text: "Häll smeten i en smord och bröad form.", tip: "Använd en form på cirka 24 cm." }, + { + text: "Grädda mitt i ugnen tills ytan stelnat men mitten fortfarande är kladdig, cirka 18–20 minuter. Låt kallna helt innan servering.", + temperatureC: 175, + }, + ], + }, + { + slug: "chokladbollar", + titleSv: "Chokladbollar", + descriptionSv: + "Klassiska, snabba chokladbollar rullade i kokos – inget bak, bara att röra ihop.", + cuisine: "swedish", + mealTypes: ["snack"], + tags: ["baking", "vegetarian", "kid_friendly"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 15, + cookMin: 0, + portions: 20, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: [], + holidayTags: ["fika"], + variantType: "standard", + dnaCarb: "oats", + dnaVegetables: [], + dnaFlavor: ["sweet", "chocolate"], + verificationStatus: "editorial", + ingredients: [ + { ing: "oats", nameSv: "Havregryn", qty: 300, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 100, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 100, unit: "GRAM", optional: false }, + { ing: "cocoa", nameSv: "Kakao", qty: 30, unit: "GRAM", optional: false }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + { ing: "desiccated_coconut", nameSv: "Kokosflingor", qty: 50, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Rör ihop mjukt smör, socker, kakao och vaniljsocker till en slät smet." }, + { text: "Blanda i havregrynen och arbeta ihop till en fast massa." }, + { text: "Rulla bollar och rulla dem i kokos. Låt stelna i kylen minst 30 minuter." }, + ], + }, + { + slug: "blabarssmulpaj", + titleSv: "Blåbärssmulpaj", + descriptionSv: + "Söta blåbär under ett gyllene smul av smör och havregryn – sommarens självklara paj.", + cuisine: "swedish", + mealTypes: ["dessert"], + tags: ["baking", "vegetarian"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "beginner", + prepMin: 15, + cookMin: 25, + portions: 6, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: true, + peakSeasons: ["summer"], + holidayTags: [], + variantType: "standard", + dnaCarb: "oats", + dnaVegetables: [], + dnaFlavor: ["sweet", "fruity"], + verificationStatus: "editorial", + ingredients: [ + { ing: "blueberry", nameSv: "Blåbär", qty: 500, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 80, 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: "Fördela blåbären i en smord form och strö över hälften av sockret." }, + { + text: "Nyp ihop smör, mjöl, havregryn, vaniljsocker och resten av sockret till ett grovt smul.", + }, + { + text: "Fördela smulet över bären och grädda mitt i ugnen tills gyllene, cirka 25 minuter.", + temperatureC: 200, + }, + { text: "Servera ljummen med vispad grädde eller vaniljyoghurt." }, + ], + }, + { + slug: "sockerkaka", + titleSv: "Sockerkaka", + descriptionSv: + "Luftig, saftig sockerkaka – den enklaste kakan att baka och alltid lika uppskattad till fikat.", + cuisine: "swedish", + mealTypes: ["snack"], + tags: ["baking", "vegetarian", "kid_friendly"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "beginner", + prepMin: 15, + cookMin: 40, + portions: 10, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: true, + peakSeasons: [], + holidayTags: ["fika"], + variantType: "standard", + dnaCarb: "flour_wheat", + dnaVegetables: [], + dnaFlavor: ["sweet", "vanilla"], + verificationStatus: "editorial", + ingredients: [ + { ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 200, unit: "GRAM", optional: false }, + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 180, unit: "GRAM", optional: false }, + { ing: "baking_powder", nameSv: "Bakpulver", qty: 10, unit: "GRAM", 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: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Vispa ägg och socker riktigt pösigt och ljust." }, + { text: "Smält smöret tillsammans med mjölken och låt svalna något." }, + { + text: "Vänd ner mjöl, bakpulver och vaniljsocker i äggsmeten och rör sedan i smör och mjölk.", + }, + { + text: "Häll smeten i en smord och bröad sockerkaksform och grädda i nedre delen av ugnen tills en sticka kommer ut torr, cirka 40 minuter.", + temperatureC: 175, + }, + ], + }, + { + slug: "morotskaka", + titleSv: "Morotskaka", + descriptionSv: "Saftig, kryddig morotskaka med valnötter – mumsig till kaffet.", + cuisine: "swedish", + mealTypes: ["dessert"], + tags: ["baking", "vegetarian"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "medium", + prepMin: 20, + cookMin: 35, + portions: 12, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: true, + peakSeasons: [], + holidayTags: ["fika"], + variantType: "standard", + dnaCarb: "flour_wheat", + dnaVegetables: ["carrot"], + dnaFlavor: ["sweet", "cinnamon", "nutty"], + verificationStatus: "editorial", + ingredients: [ + { ing: "carrot", nameSv: "Morot", qty: 4, unit: "COUNT", optional: false }, + { ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 200, unit: "GRAM", optional: false }, + { ing: "rapeseed_oil", nameSv: "Rapsolja", qty: 1.5, unit: "DECILITER", optional: false }, + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 200, unit: "GRAM", optional: false }, + { ing: "baking_powder", nameSv: "Bakpulver", qty: 10, unit: "GRAM", optional: false }, + { ing: "cinnamon", nameSv: "Kanel", qty: 2, unit: "TEASPOON", optional: false }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + { ing: "walnut", nameSv: "Valnötter", qty: 75, unit: "GRAM", optional: true }, + ], + steps: [ + { text: "Riv morötterna fint. Vispa ägg, socker och olja pösigt." }, + { + text: "Blanda i mjöl, bakpulver, kanel och vaniljsocker och rör sedan ner morötter och hackade valnötter.", + }, + { + text: "Häll smeten i en smord form och grädda mitt i ugnen tills en sticka kommer ut torr, cirka 35 minuter.", + temperatureC: 175, + }, + ], + }, + { + slug: "vaniljbullar", + titleSv: "Vaniljbullar", + descriptionSv: "Mjuka bullar med vaniljfyllning och pärlsocker – ett annat namn på söndagsmys.", + cuisine: "swedish", + mealTypes: ["snack"], + tags: ["baking", "vegetarian", "kid_friendly"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "medium", + prepMin: 45, + cookMin: 12, + portions: 24, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: [], + holidayTags: ["fika"], + variantType: "standard", + dnaCarb: "flour_wheat", + dnaVegetables: [], + dnaFlavor: ["sweet", "vanilla", "buttery"], + verificationStatus: "editorial", + ingredients: [ + { ing: "flour_wheat", nameSv: "Vetemjöl", qty: 650, unit: "GRAM", optional: false }, + { ing: "milk_3", nameSv: "Mjölk", qty: 3, unit: "DECILITER", optional: false }, + { ing: "yeast_fresh", nameSv: "Jäst", qty: 25, unit: "GRAM", optional: false }, + { ing: "butter", nameSv: "Smör", qty: 175, unit: "GRAM", optional: false }, + { ing: "sugar", nameSv: "Strösocker", qty: 150, unit: "GRAM", optional: false }, + { ing: "cardamom", nameSv: "Kardemumma", qty: 2, unit: "GRAM", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + { ing: "egg", nameSv: "Ägg", qty: 1, unit: "COUNT", optional: false }, + { ing: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 20, unit: "GRAM", optional: false }, + { ing: "pearl_sugar", nameSv: "Pärlsocker", qty: 30, unit: "GRAM", optional: true }, + ], + steps: [ + { + text: "Smält 75 g smör, rör ner mjölken och värm till fingervarmt. Lös upp jästen i vätskan.", + }, + { + text: "Blanda i hälften av sockret, kardemumma, salt och mjölet. Arbeta degen smidig och låt jäsa 40 minuter.", + }, + { + text: "Kavla ut, bred på resten av det mjuka smöret och strö över resten av sockret blandat med vaniljsocker.", + }, + { text: "Rulla ihop, skär 24 bullar och jäs 30 minuter till." }, + { + text: "Pensla med uppvispat ägg, strö över pärlsocker och grädda gyllenbruna mitt i ugnen.", + temperatureC: 225, + }, + ], + }, + + // --------------------------------------------------------------------------- + // EFTERRÄTT & FRUKOST/MELLANMÅL (fler alternativ) + // --------------------------------------------------------------------------- + { + slug: "fruktsallad", + titleSv: "Fruktsallad", + descriptionSv: "Fräsch fruktsallad med äpple, päron, apelsin och blåbär – nyttig och snabb.", + cuisine: "international", + mealTypes: ["dessert", "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: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["fruity", "fresh", "sweet"], + verificationStatus: "editorial", + ingredients: [ + { ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false }, + { ing: "pear", nameSv: "Päron", qty: 1, unit: "COUNT", optional: false }, + { ing: "orange", nameSv: "Apelsin", qty: 1, unit: "COUNT", optional: false }, + { ing: "banana", nameSv: "Banan", qty: 1, unit: "COUNT", optional: false }, + { ing: "blueberry", nameSv: "Blåbär", qty: 100, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Tärna äpple, päron och banan. Skala och dela apelsinen i bitar." }, + { + text: "Blanda frukten med blåbären och pressa gärna över lite apelsinsaft. Servera direkt.", + }, + ], + }, + { + slug: "rabarberkompott", + titleSv: "Rabarberkompott", + descriptionSv: "Syrlig-söt rabarberkompott – god till gröt, yoghurt eller glass.", + cuisine: "swedish", + mealTypes: ["dessert"], + tags: ["vegan", "quick"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 5, + cookMin: 15, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: ["spring", "summer"], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["fruity", "tart", "sweet"], + 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: "vanilla_sugar", nameSv: "Vaniljsocker", qty: 10, unit: "GRAM", optional: false }, + ], + steps: [ + { text: "Skölj och skär rabarbern i bitar." }, + { text: "Lägg rabarber, socker, vaniljsocker och en skvätt vatten i en kastrull." }, + { + text: "Sjud under lock tills rabarbern faller sönder, cirka 10–15 minuter. Servera ljummen eller kall.", + }, + ], + }, + { + slug: "keso-med-bar-och-notter", + titleSv: "Keso med bär och nötter", + descriptionSv: "Proteinrik frukost eller mellanmål: krämig keso med bär, valnötter och honung.", + cuisine: "international", + mealTypes: ["breakfast", "snack"], + tags: ["vegetarian", "high_protein", "quick"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 3, + cookMin: 0, + portions: 1, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: [], + dnaFlavor: ["creamy", "fruity", "nutty"], + verificationStatus: "editorial", + ingredients: [ + { ing: "cottage_cheese", nameSv: "Keso", qty: 200, unit: "GRAM", optional: false }, + { ing: "blueberry", nameSv: "Blåbär", qty: 75, unit: "GRAM", optional: false }, + { ing: "raspberry", nameSv: "Hallon", qty: 50, unit: "GRAM", optional: true }, + { ing: "walnut", nameSv: "Valnötter", qty: 20, unit: "GRAM", optional: false }, + { ing: "honey", nameSv: "Honung", qty: 15, unit: "GRAM", optional: true }, + ], + steps: [ + { text: "Lägg upp keson i en skål." }, + { text: "Toppa med blåbär, hallon, hackade valnötter och en skvätt honung." }, + ], + }, + + // --------------------------------------------------------------------------- + // LUNCH & MIDDAG (mer variation) + // --------------------------------------------------------------------------- + { + slug: "tonfiskrora", + titleSv: "Tonfiskröra på macka", + descriptionSv: "Snabb och matig tonfiskröra med majs och rödlök – god på rostat bröd.", + cuisine: "international", + mealTypes: ["lunch"], + tags: ["high_protein", "quick", "budget"], + methods: ["no_cook"], + equipment: [], + difficulty: "beginner", + prepMin: 10, + cookMin: 0, + portions: 2, + spiceLevel: 0, + mealPrepFriendly: false, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaProtein: "tuna_canned", + dnaVegetables: [], + dnaFlavor: ["savory", "fresh"], + verificationStatus: "editorial", + ingredients: [ + { ing: "tuna_canned", nameSv: "Tonfisk", qty: 200, unit: "GRAM", optional: false }, + { ing: "mayonnaise", nameSv: "Majonnäs", qty: 40, unit: "GRAM", optional: false }, + { ing: "red_onion", nameSv: "Rödlök", qty: 0.5, unit: "COUNT", optional: false }, + { ing: "corn", nameSv: "Majs", qty: 100, unit: "GRAM", optional: true }, + { ing: "bread_sourdough", nameSv: "Surdegsbröd", qty: 2, unit: "COUNT", optional: false }, + { ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: false }, + ], + steps: [ + { text: "Låt tonfisken rinna av och blanda med majonnäs, finhackad rödlök och majs." }, + { text: "Smaka av med svartpeppar och bred på rostat bröd." }, + ], + }, + { + slug: "couscoussallad", + titleSv: "Couscoussallad med fetaost", + descriptionSv: "Matig couscoussallad med krispiga grönsaker, fetaost och citrondressing.", + cuisine: "international", + mealTypes: ["lunch", "dinner"], + tags: ["vegetarian", "budget", "batch_cooking"], + methods: ["stovetop"], + equipment: ["stove"], + difficulty: "beginner", + prepMin: 15, + cookMin: 5, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: ["summer"], + holidayTags: [], + variantType: "standard", + dnaCarb: "couscous", + dnaVegetables: ["tomato", "cucumber"], + dnaFlavor: ["fresh", "savory"], + verificationStatus: "editorial", + ingredients: [ + { ing: "couscous", nameSv: "Couscous", qty: 250, unit: "GRAM", optional: false }, + { ing: "cucumber", nameSv: "Gurka", qty: 0.5, unit: "COUNT", optional: false }, + { ing: "tomato", nameSv: "Tomat", qty: 2, unit: "COUNT", optional: false }, + { ing: "feta", nameSv: "Fetaost", qty: 150, unit: "GRAM", optional: false }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false }, + { ing: "lemon", nameSv: "Citron", qty: 0.5, unit: "COUNT", optional: false }, + { ing: "parsley", nameSv: "Persilja", qty: 10, unit: "GRAM", optional: true }, + { ing: "salt", nameSv: "Salt", qty: 0.5, unit: "TEASPOON", optional: false }, + ], + steps: [ + { + text: "Koka upp 3 dl vatten, häll över couscousen, lägg på lock och låt svälla 5 minuter. Rör upp med en gaffel.", + }, + { text: "Tärna gurka och tomat och smula fetaosten." }, + { text: "Blanda couscous med grönsaker, olja, pressad citron, hackad persilja och salt." }, + ], + }, + { + slug: "blomkalssoppa", + titleSv: "Krämig blomkålssoppa", + descriptionSv: "Len, matig blomkålssoppa med en klick grädde – god med rostat bröd.", + cuisine: "swedish", + mealTypes: ["lunch", "dinner"], + tags: ["vegetarian", "budget"], + methods: ["stovetop"], + equipment: ["stove", "blender"], + difficulty: "beginner", + prepMin: 10, + cookMin: 20, + portions: 4, + spiceLevel: 0, + mealPrepFriendly: true, + freezerFriendly: true, + peakSeasons: ["autumn", "winter"], + holidayTags: [], + variantType: "standard", + dnaVegetables: ["cauliflower", "onion"], + dnaFlavor: ["savory", "creamy"], + verificationStatus: "editorial", + ingredients: [ + { ing: "cauliflower", nameSv: "Blomkål", qty: 600, 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: "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: "olive_oil", nameSv: "Olivolja", qty: 1, unit: "TABLESPOON", 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 i oljan." }, + { + text: "Tillsätt blomkål i buketter, smulade buljongtärningar och 7 dl vatten. Sjud tills blomkålen är mjuk, cirka 15 minuter.", + }, + { text: "Mixa soppan slät, rör i grädden och smaka av med salt och peppar." }, + ], + }, + { + slug: "ugnsbakad-sotpotatis-kikartor", + titleSv: "Ugnsbakad sötpotatis med kikärtor", + descriptionSv: + "Matig, kryddig plåtmiddag med sötpotatis, kikärtor och fetaost – vegetariskt och mättande.", + cuisine: "international", + mealTypes: ["dinner", "lunch"], + tags: ["vegetarian", "high_protein"], + methods: ["oven"], + equipment: ["oven"], + difficulty: "beginner", + prepMin: 10, + cookMin: 30, + portions: 2, + spiceLevel: 1, + mealPrepFriendly: true, + freezerFriendly: false, + peakSeasons: [], + holidayTags: [], + variantType: "standard", + dnaVegetables: ["sweet_potato"], + dnaFlavor: ["savory", "spiced"], + verificationStatus: "editorial", + ingredients: [ + { ing: "sweet_potato", nameSv: "Sötpotatis", qty: 2, unit: "COUNT", optional: false }, + { ing: "chickpeas_canned", nameSv: "Kikärtor", qty: 200, unit: "GRAM", optional: false }, + { ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false }, + { ing: "paprika_powder", nameSv: "Paprikapulver", qty: 2, unit: "TEASPOON", optional: false }, + { ing: "cumin", nameSv: "Spiskummin", qty: 1, unit: "TEASPOON", optional: false }, + { ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false }, + { ing: "feta", nameSv: "Fetaost", qty: 100, unit: "GRAM", optional: true }, + ], + steps: [ + { text: "Skala och tärna sötpotatisen. Låt kikärtorna rinna av." }, + { + text: "Blanda sötpotatis och kikärtor med olja, paprikapulver, spiskummin och salt på en plåt.", + }, + { + text: "Rosta i ugnen tills sötpotatisen är mjuk och får färg, cirka 30 minuter. Smula över fetaost före servering.", + temperatureC: 200, + }, + ], + }, ]; diff --git a/packages/database/src/seed/data/ingredients.ts b/packages/database/src/seed/data/ingredients.ts index c01e3f3..1667169 100644 --- a/packages/database/src/seed/data/ingredients.ts +++ b/packages/database/src/seed/data/ingredients.ts @@ -174,7 +174,14 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ shelfLifeGuidance: { fridge: 7 }, defaultPriceMinorPerKg: 5500, }), - ing("creme_fraiche", "Crème fraiche", "Crème fraîche", "mejeri", { aliases: ["creme fraiche", "crème fraiche 32%", "creme fraiche 32%", "crème fraiche 32 %", "creme fraiche 32 %"], + ing("creme_fraiche", "Crème fraiche", "Crème fraîche", "mejeri", { + aliases: [ + "creme fraiche", + "crème fraiche 32%", + "creme fraiche 32%", + "crème fraiche 32 %", + "creme fraiche 32 %", + ], ...vgt, defaultUnit: "DECILITER", densityGPerMl: 1, @@ -193,7 +200,16 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ defaultPriceMinorPerKg: 4500, aliases: ["kesella"], }), - ing("yoghurt_natural", "Naturell yoghurt 3 %", "Plain yogurt", "mejeri", { aliases: ["yoghurt", "yogurt", "naturell yoghurt", "grekisk yoghurt", "greek yogurt", "grekisk style yoghurt", "greek style yogurt"], + ing("yoghurt_natural", "Naturell yoghurt 3 %", "Plain yogurt", "mejeri", { + aliases: [ + "yoghurt", + "yogurt", + "naturell yoghurt", + "grekisk yoghurt", + "greek yogurt", + "grekisk style yoghurt", + "greek style yogurt", + ], ...vgt, defaultUnit: "DECILITER", densityGPerMl: 1.03, @@ -392,7 +408,8 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ shelfLifeGuidance: { pantry: 60 }, defaultPriceMinorPerKg: 9000, }), - ing("carrot", "Morot", "Carrot", "gronsaker", { aliases: ["morötter", "morotter", "carrots"], + ing("carrot", "Morot", "Carrot", "gronsaker", { + aliases: ["morötter", "morotter", "carrots"], ...veg, defaultUnit: "COUNT", gramsPerPiece: 125, @@ -471,7 +488,7 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ }), ing("dill", "Dill (färsk)", "Dill", "gronsaker", { ...veg, - gramsPerPiece: 25, + gramsPerPiece: 25, densityGPerMl: 0.12, n: { kcal: 40, p: 3.5, k: 5, f: 0.8, fib: 2.5 }, shelfLifeGuidance: { fridge: 5 }, @@ -480,7 +497,7 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ }), ing("parsley", "Persilja (färsk)", "Parsley", "gronsaker", { ...veg, - gramsPerPiece: 25, + gramsPerPiece: 25, densityGPerMl: 0.12, n: { kcal: 45, p: 3.7, k: 6, f: 0.9, fib: 3.5 }, shelfLifeGuidance: { fridge: 5 }, @@ -640,7 +657,8 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ shelfLifeGuidance: { pantry: 365 }, defaultPriceMinorPerKg: 3000, }), - ing("bread_sourdough", "Surdegsbröd", "Sourdough bread", "brod", { gramsPerPiece: 40, + ing("bread_sourdough", "Surdegsbröd", "Sourdough bread", "brod", { + gramsPerPiece: 40, ...veg, containsGluten: true, allergens: ["gluten"], @@ -970,24 +988,295 @@ export const SEED_INGREDIENTS: SeedIngredient[] = [ shelfLifeGuidance: { pantry: 1095 }, defaultPriceMinorPerKg: 35000, }), - ing("saffron", "Saffran", "Saffron", "krydda", { n: { kcal: 310, p: 11, k: 65, f: 6 }, isVegan: true, isVegetarian: true }), - ing("yeast_fresh", "Jäst", "Fresh yeast", "skafferi", { n: { kcal: 105, p: 9, k: 19, f: 2 }, isVegan: true, isVegetarian: true }), - ing("cooked_ham", "Kokt skinka (julskinka)", "Cooked ham", "chark", { n: { kcal: 145, p: 18, k: 1, f: 8, mf: 3, salt: 2 }, isPork: true }), - ing("crayfish", "Kräftor", "Crayfish", "skaldjur", { n: { kcal: 77, p: 16, k: 0, f: 1 }, allergens: ["crustaceans"] }), - ing("cardamom", "Kardemumma", "Cardamom", "krydda", { densityGPerMl: 0.45, n: { kcal: 311, p: 11, k: 68, f: 7 }, isVegan: true, isVegetarian: true }), - ing("almond_paste", "Mandelmassa", "Almond paste", "bakning", { n: { kcal: 430, p: 9, k: 45, f: 24, s: 40 }, allergens: ["tree_nuts"], isVegetarian: true }), - ing("red_cabbage", "Rödkål", "Red cabbage", "gronsaker", { n: { kcal: 31, p: 1.4, k: 7, f: 0.2, fib: 2 }, isVegan: true, isVegetarian: true }), - ing("lingonberry_jam", "Lingonsylt", "Lingonberry jam", "skafferi", { n: { kcal: 200, p: 0.3, k: 49, f: 0.2, s: 45 }, isVegan: true, isVegetarian: true }), - ing("prinskorv", "Prinskorv", "Cocktail sausage", "chark", { n: { kcal: 280, p: 11, k: 3, f: 25, mf: 9, salt: 2 }, isPork: true }), - ing("rye_flour", "Rågmjöl", "Rye flour", "skafferi", { n: { kcal: 325, p: 9, k: 60, f: 2, fib: 14 }, containsGluten: true, allergens: ["gluten"], isVegan: true, isVegetarian: true }), - ing("grape", "Vindruvor", "Grapes", "frukt", { n: { kcal: 69, p: 0.7, k: 18, f: 0.2, fib: 0.9, s: 15 }, isVegan: true, isVegetarian: true, aliases: ["druvor", "vindruva", "roda druvor", "röda druvor", "grona druvor", "gröna druvor", "drue druvor", "drue", "grapes"] }), - ing("beetroot", "Rödbetor", "Beetroot", "gronsaker", { n: { kcal: 43, p: 1.6, k: 10, f: 0.2, fib: 2.8, s: 7 }, isVegan: true, isVegetarian: true, aliases: ["rödbeta", "rodbeta", "rödbetor", "rodbetor", "inlagda rödbetor", "inlagda rodbetor", "skivad rödbeta", "skivade rödbetor", "beetroot", "beets", "red beets"] }), - ing("pea_shoots", "Ärtskott", "Pea shoots", "gronsaker", { n: { kcal: 42, p: 4, k: 4, f: 0.5, fib: 2 }, isVegan: true, isVegetarian: true, aliases: ["ärtskott", "artskott", "ertskott", "artiskott", "pea shoots"] }), - ing("balsamic_vinegar", "Balsamvinäger", "Balsamic vinegar", "skafferi", { n: { kcal: 88, p: 0.5, k: 17, f: 0, s: 15 }, isVegan: true, isVegetarian: true, aliases: ["balsamvinäger", "balsamvinager", "balsamico", "balsamic vinegar", "vinäger"] }), - ing("strawberry_jam", "Jordgubbssylt", "Strawberry jam", "skafferi", { n: { kcal: 200, p: 0.3, k: 49, f: 0.2, s: 45 }, isVegan: true, isVegetarian: true, aliases: ["jordgubbssylt", "jordgubbsylt", "strawberry jam"] }), - ing("fish_stock", "Fiskfond", "Fish stock", "skafferi", { n: { kcal: 15, p: 1.5, k: 1, f: 0.5, salt: 6 }, allergens: ["fish"], aliases: ["fiskfond", "fisk fond", "fish stock"] }), - ing("lobster_stock", "Hummerfond", "Lobster stock", "skafferi", { n: { kcal: 20, p: 2, k: 1.5, f: 0.7, salt: 6 }, allergens: ["crustaceans"], aliases: ["hummerfond", "hummer fond", "lobster stock"] }), - ing("cornichons", "Cornichoner", "Cornichons", "skafferi", { n: { kcal: 11, p: 0.5, k: 2, f: 0.1, fib: 1, salt: 2 }, isVegan: true, isVegetarian: true, aliases: ["cornichons", "cornicher", "cornichoner", "ättiksgurka", "inlagd gurka", "små gurkor", "gherkins"] }), + ing("saffron", "Saffran", "Saffron", "krydda", { + n: { kcal: 310, p: 11, k: 65, f: 6 }, + isVegan: true, + isVegetarian: true, + }), + ing("yeast_fresh", "Jäst", "Fresh yeast", "skafferi", { + n: { kcal: 105, p: 9, k: 19, f: 2 }, + isVegan: true, + isVegetarian: true, + }), + ing("cooked_ham", "Kokt skinka (julskinka)", "Cooked ham", "chark", { + n: { kcal: 145, p: 18, k: 1, f: 8, mf: 3, salt: 2 }, + isPork: true, + }), + ing("crayfish", "Kräftor", "Crayfish", "skaldjur", { + n: { kcal: 77, p: 16, k: 0, f: 1 }, + allergens: ["crustaceans"], + }), + ing("cardamom", "Kardemumma", "Cardamom", "krydda", { + densityGPerMl: 0.45, + n: { kcal: 311, p: 11, k: 68, f: 7 }, + isVegan: true, + isVegetarian: true, + }), + ing("almond_paste", "Mandelmassa", "Almond paste", "bakning", { + n: { kcal: 430, p: 9, k: 45, f: 24, s: 40 }, + allergens: ["tree_nuts"], + isVegetarian: true, + }), + ing("red_cabbage", "Rödkål", "Red cabbage", "gronsaker", { + n: { kcal: 31, p: 1.4, k: 7, f: 0.2, fib: 2 }, + isVegan: true, + isVegetarian: true, + }), + ing("lingonberry_jam", "Lingonsylt", "Lingonberry jam", "skafferi", { + n: { kcal: 200, p: 0.3, k: 49, f: 0.2, s: 45 }, + isVegan: true, + isVegetarian: true, + }), + ing("prinskorv", "Prinskorv", "Cocktail sausage", "chark", { + n: { kcal: 280, p: 11, k: 3, f: 25, mf: 9, salt: 2 }, + isPork: true, + }), + ing("rye_flour", "Rågmjöl", "Rye flour", "skafferi", { + n: { kcal: 325, p: 9, k: 60, f: 2, fib: 14 }, + containsGluten: true, + allergens: ["gluten"], + isVegan: true, + isVegetarian: true, + }), + ing("grape", "Vindruvor", "Grapes", "frukt", { + n: { kcal: 69, p: 0.7, k: 18, f: 0.2, fib: 0.9, s: 15 }, + isVegan: true, + isVegetarian: true, + aliases: [ + "druvor", + "vindruva", + "roda druvor", + "röda druvor", + "grona druvor", + "gröna druvor", + "drue druvor", + "drue", + "grapes", + ], + }), + ing("beetroot", "Rödbetor", "Beetroot", "gronsaker", { + n: { kcal: 43, p: 1.6, k: 10, f: 0.2, fib: 2.8, s: 7 }, + isVegan: true, + isVegetarian: true, + aliases: [ + "rödbeta", + "rodbeta", + "rödbetor", + "rodbetor", + "inlagda rödbetor", + "inlagda rodbetor", + "skivad rödbeta", + "skivade rödbetor", + "beetroot", + "beets", + "red beets", + ], + }), + ing("pea_shoots", "Ärtskott", "Pea shoots", "gronsaker", { + n: { kcal: 42, p: 4, k: 4, f: 0.5, fib: 2 }, + isVegan: true, + isVegetarian: true, + aliases: ["ärtskott", "artskott", "ertskott", "artiskott", "pea shoots"], + }), + ing("balsamic_vinegar", "Balsamvinäger", "Balsamic vinegar", "skafferi", { + n: { kcal: 88, p: 0.5, k: 17, f: 0, s: 15 }, + isVegan: true, + isVegetarian: true, + aliases: ["balsamvinäger", "balsamvinager", "balsamico", "balsamic vinegar", "vinäger"], + }), + ing("strawberry_jam", "Jordgubbssylt", "Strawberry jam", "skafferi", { + n: { kcal: 200, p: 0.3, k: 49, f: 0.2, s: 45 }, + isVegan: true, + isVegetarian: true, + aliases: ["jordgubbssylt", "jordgubbsylt", "strawberry jam"], + }), + ing("fish_stock", "Fiskfond", "Fish stock", "skafferi", { + n: { kcal: 15, p: 1.5, k: 1, f: 0.5, salt: 6 }, + allergens: ["fish"], + aliases: ["fiskfond", "fisk fond", "fish stock"], + }), + ing("lobster_stock", "Hummerfond", "Lobster stock", "skafferi", { + n: { kcal: 20, p: 2, k: 1.5, f: 0.7, salt: 6 }, + allergens: ["crustaceans"], + aliases: ["hummerfond", "hummer fond", "lobster stock"], + }), + ing("cornichons", "Cornichoner", "Cornichons", "skafferi", { + n: { kcal: 11, p: 0.5, k: 2, f: 0.1, fib: 1, salt: 2 }, + isVegan: true, + isVegetarian: true, + aliases: [ + "cornichons", + "cornicher", + "cornichoner", + "ättiksgurka", + "inlagd gurka", + "små gurkor", + "gherkins", + ], + }), + // --- Utökning: bakning (för riktiga kakor/pajer/bullar) --- + ing("vanilla_sugar", "Vaniljsocker", "Vanilla sugar", "bakning", { + n: { kcal: 400, p: 0, k: 99, f: 0, s: 98 }, + isVegan: true, + isVegetarian: true, + aliases: ["vaniljsocker", "vanillasocker", "vanilla sugar"], + }), + ing("baking_powder", "Bakpulver", "Baking powder", "bakning", { + n: { kcal: 53, p: 0, k: 28, f: 0, salt: 25 }, + isVegan: true, + isVegetarian: true, + aliases: ["bakpulver", "baking powder"], + }), + ing("baking_soda", "Bikarbonat", "Baking soda", "bakning", { + n: { kcal: 0, p: 0, k: 0, f: 0, salt: 27 }, + isVegan: true, + isVegetarian: true, + aliases: ["bikarbonat", "natriumbikarbonat", "baking soda"], + }), + ing("cocoa", "Kakao", "Cocoa powder", "bakning", { + n: { kcal: 350, p: 20, k: 58, f: 14, mf: 8, fib: 33 }, + isVegan: true, + isVegetarian: true, + aliases: ["kakao", "kakaopulver", "cocoa", "cocoa powder"], + }), + ing("dark_chocolate", "Mörk choklad", "Dark chocolate", "bakning", { + n: { kcal: 550, p: 6, k: 46, f: 38, mf: 24, s: 40 }, + isVegan: true, + isVegetarian: true, + aliases: ["mörk choklad", "mork choklad", "choklad", "dark chocolate", "chocolate"], + }), + ing("powdered_sugar", "Florsocker", "Powdered sugar", "bakning", { + n: { kcal: 390, p: 0, k: 100, f: 0, s: 99 }, + isVegan: true, + isVegetarian: true, + aliases: ["florsocker", "powdered sugar", "icing sugar"], + }), + ing("pearl_sugar", "Pärlsocker", "Pearl sugar", "bakning", { + n: { kcal: 400, p: 0, k: 100, f: 0, s: 100 }, + isVegan: true, + isVegetarian: true, + aliases: ["pärlsocker", "parlsocker", "pearl sugar"], + }), + ing("desiccated_coconut", "Kokosflingor", "Desiccated coconut", "bakning", { + n: { kcal: 660, p: 7, k: 24, f: 64, mf: 57, fib: 16 }, + isVegan: true, + isVegetarian: true, + aliases: ["kokosflingor", "kokos", "riven kokos", "desiccated coconut"], + }), + ing("raisins", "Russin", "Raisins", "bakning", { + n: { kcal: 299, p: 3, k: 79, f: 0.5, fib: 4, s: 59 }, + isVegan: true, + isVegetarian: true, + aliases: ["russin", "raisins"], + }), + // --- Utökning: frukt & bär --- + ing("blueberry", "Blåbär", "Blueberries", "frukt", { + n: { kcal: 57, p: 0.7, k: 12, f: 0.3, fib: 2.4, s: 10 }, + isVegan: true, + isVegetarian: true, + aliases: ["blåbär", "blabar", "blueberries", "blueberry"], + }), + ing("raspberry", "Hallon", "Raspberries", "frukt", { + n: { kcal: 52, p: 1.2, k: 8, f: 0.7, fib: 6.5, s: 4 }, + isVegan: true, + isVegetarian: true, + aliases: ["hallon", "raspberries", "raspberry"], + }), + ing("pear", "Päron", "Pear", "frukt", { + defaultUnit: "COUNT", + gramsPerPiece: 170, + n: { kcal: 57, p: 0.4, k: 15, f: 0.1, fib: 3, s: 10 }, + isVegan: true, + isVegetarian: true, + aliases: ["päron", "paron", "pear"], + }), + ing("orange", "Apelsin", "Orange", "frukt", { + defaultUnit: "COUNT", + gramsPerPiece: 180, + n: { kcal: 47, p: 0.9, k: 12, f: 0.1, fib: 2.4, s: 9 }, + isVegan: true, + isVegetarian: true, + aliases: ["apelsin", "orange"], + }), + ing("rhubarb", "Rabarber", "Rhubarb", "frukt", { + n: { kcal: 21, p: 0.9, k: 4.5, f: 0.2, fib: 1.8, s: 1 }, + isVegan: true, + isVegetarian: true, + aliases: ["rabarber", "rhubarb"], + }), + // --- Utökning: nötter --- + ing("walnut", "Valnötter", "Walnuts", "skafferi", { + n: { kcal: 654, p: 15, k: 14, f: 65, mf: 6, fib: 7 }, + allergens: ["tree_nuts"], + isVegan: true, + isVegetarian: true, + aliases: ["valnötter", "valnotter", "valnöt", "walnuts", "walnut"], + }), + ing("hazelnut", "Hasselnötter", "Hazelnuts", "skafferi", { + n: { kcal: 628, p: 15, k: 17, f: 61, mf: 4, fib: 10 }, + allergens: ["tree_nuts"], + isVegan: true, + isVegetarian: true, + aliases: ["hasselnötter", "hasselnotter", "hazelnuts", "hazelnut"], + }), + // --- Utökning: grönsaker --- + ing("cauliflower", "Blomkål", "Cauliflower", "gronsaker", { + n: { kcal: 25, p: 1.9, k: 5, f: 0.3, fib: 2 }, + isVegan: true, + isVegetarian: true, + aliases: ["blomkål", "blomkal", "cauliflower"], + }), + ing("sweet_potato", "Sötpotatis", "Sweet potato", "gronsaker", { + defaultUnit: "COUNT", + gramsPerPiece: 200, + n: { kcal: 86, p: 1.6, k: 20, f: 0.1, fib: 3 }, + isVegan: true, + isVegetarian: true, + aliases: ["sötpotatis", "sotpotatis", "batat", "sweet potato"], + }), + ing("kale", "Grönkål", "Kale", "gronsaker", { + n: { kcal: 49, p: 4.3, k: 9, f: 0.9, fib: 4 }, + isVegan: true, + isVegetarian: true, + aliases: ["grönkål", "gronkal", "kale"], + }), + ing("white_cabbage", "Vitkål", "White cabbage", "gronsaker", { + n: { kcal: 25, p: 1.3, k: 6, f: 0.1, fib: 2.5 }, + isVegan: true, + isVegetarian: true, + aliases: ["vitkål", "vitkal", "kål", "kal", "white cabbage", "cabbage"], + }), + ing("green_beans", "Haricots verts", "Green beans", "gronsaker", { + n: { kcal: 31, p: 1.8, k: 7, f: 0.1, fib: 3.4 }, + isVegan: true, + isVegetarian: true, + aliases: ["haricots verts", "gröna bönor", "grona bonor", "skärbönor", "green beans"], + }), + // --- Utökning: protein & övrigt --- + ing("tuna_canned", "Tonfisk (burk)", "Canned tuna", "fisk", { + n: { kcal: 116, p: 26, k: 0, f: 1 }, + allergens: ["fish"], + aliases: ["tonfisk", "tonfisk i vatten", "tonfisk på burk", "canned tuna", "tuna"], + }), + ing("couscous", "Couscous", "Couscous", "spannmal", { + n: { kcal: 376, p: 13, k: 77, f: 0.6, fib: 5 }, + containsGluten: true, + allergens: ["gluten"], + isVegan: true, + isVegetarian: true, + aliases: ["couscous", "kuskus"], + }), + ing("cottage_cheese", "Keso", "Cottage cheese", "mejeri", { + n: { kcal: 98, p: 11, k: 3.4, f: 4.3, mf: 2 }, + allergens: ["milk"], + containsLactose: true, + isVegetarian: true, + aliases: ["keso", "cottage cheese", "grynig färskost"], + }), + ing("turkey_breast", "Kalkonfilé", "Turkey breast", "kott_fagel", { + n: { kcal: 105, p: 24, k: 0, f: 1 }, + aliases: ["kalkon", "kalkonfilé", "kalkonfile", "kalkonbröst", "turkey", "turkey breast"], + }), ]; export const SEED_INGREDIENT_IDS = new Set(SEED_INGREDIENTS.map((i) => i.id)); diff --git a/packages/database/test/extra-recipes.test.ts b/packages/database/test/extra-recipes.test.ts index 40ebbd9..08bd8c7 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 16 recept", () => { - expect(EXTRA_RECIPES.length).toBeGreaterThanOrEqual(16); + it("har minst 29 recept", () => { + expect(EXTRA_RECIPES.length).toBeGreaterThanOrEqual(29); }); it("alla ingrediens-id:n finns i katalogen (run.ts rad 675)", () => {