/** * Seed: datadriven Season & Events Engine (spec §28). * Datumregler beräknas av recommendation-engine (midsommar, påsk, advent). */ export interface SeedSeasonEvent { id: string; slug: string; nameSv: string; nameLocalized: string; market: string; dateRule: | { kind: "fixed"; monthDay: string } | { kind: "range"; startMonthDay: string; endMonthDay: string } | { kind: "computed"; algorithm: "midsummer" | "easter" | "advent" | "custom" } | { kind: "easter-offset"; days: number } | { kind: "nth-weekday"; month: number; weekday: number; n: number | "last" }; leadDays: number; foodTags: string[]; recipeSlugs: string[]; priority: number; } export const SEED_SEASON_EVENTS: SeedSeasonEvent[] = [ { id: "se-midsommar", slug: "midsommar", nameSv: "Midsommar", nameLocalized: "", market: "SE", dateRule: { kind: "computed", algorithm: "midsummer" }, leadDays: 10, foodTags: ["sill", "färskpotatis", "jordgubbar", "grillat", "västerbottensostpaj"], recipeSlugs: ["sill-och-farskpotatis", "vasterbottensostpaj", "kottbullar-med-potatismos"], priority: 100, }, { id: "se-jul", slug: "jul", nameSv: "Jul", nameLocalized: "", market: "SE", dateRule: { kind: "range", startMonthDay: "12-20", endMonthDay: "12-26" }, leadDays: 21, foodTags: ["julbord", "köttbullar", "janssons", "sill", "skinka"], recipeSlugs: ["jansons-frestelse", "kottbullar-med-potatismos"], priority: 100, }, { id: "se-pask", slug: "påsk", nameSv: "Påsk", nameLocalized: "", market: "SE", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 10, foodTags: ["ägg", "sill", "lamm", "lax"], recipeSlugs: ["sill-och-farskpotatis", "ugnsbakad-lax-med-citron-och-dill"], priority: 90, }, { id: "se-nyar", slug: "nyår", nameSv: "Nyårsafton", nameLocalized: "", market: "SE", dateRule: { kind: "fixed", monthDay: "12-31" }, leadDays: 7, foodTags: ["fest", "skaldjur", "lyx"], recipeSlugs: [], priority: 80, }, { id: "se-kraftskiva", slug: "kraftskiva", nameSv: "Kräftskivepremiär", nameLocalized: "", market: "SE", dateRule: { kind: "range", startMonthDay: "08-01", endMonthDay: "08-31" }, leadDays: 7, foodTags: ["kräftor", "västerbottensostpaj", "knäckebröd"], recipeSlugs: ["vasterbottensostpaj"], priority: 70, }, { id: "se-surstromming", slug: "surstromming", nameSv: "Surströmmingspremiär", nameLocalized: "", market: "SE", dateRule: { kind: "fixed", monthDay: "08-15" }, leadDays: 5, foodTags: ["surströmming", "tunnbröd", "mandelpotatis"], recipeSlugs: [], priority: 40, }, { id: "se-lucia", slug: "lucia", nameSv: "Lucia", nameLocalized: "", market: "SE", dateRule: { kind: "fixed", monthDay: "12-13" }, leadDays: 7, foodTags: ["lussekatter", "pepparkakor", "glögg"], recipeSlugs: [], priority: 60, }, { id: "se-valborg", slug: "valborg", nameSv: "Valborg", nameLocalized: "", market: "SE", dateRule: { kind: "fixed", monthDay: "04-30" }, leadDays: 5, foodTags: ["grillat", "vårmat"], recipeSlugs: ["halloumiburgare"], priority: 50, }, { id: "se-grillsasong", slug: "grillsasong", nameSv: "Grillsäsong", nameLocalized: "", market: "SE", dateRule: { kind: "range", startMonthDay: "05-15", endMonthDay: "08-31" }, leadDays: 0, foodTags: ["grillat", "sallad", "sommarmat"], recipeSlugs: ["halloumiburgare", "grekisk-sallad"], priority: 30, }, { id: "se-skolstart", slug: "skolstart", nameSv: "Skolstart", nameLocalized: "", market: "SE", dateRule: { kind: "range", startMonthDay: "08-10", endMonthDay: "08-31" }, leadDays: 7, foodTags: ["matlåda", "vardagsmat", "snabbt"], recipeSlugs: ["spaghetti-med-kottfarssas", "chili-con-carne"], priority: 40, }, { id: "se-alla-hjartans", slug: "alla-hjartans-dag", nameSv: "Alla hjärtans dag", nameLocalized: "", market: "SE", dateRule: { kind: "fixed", monthDay: "02-14" }, leadDays: 5, foodTags: ["middag för två", "lyx", "dessert"], recipeSlugs: ["teriyakilax-med-ris"], priority: 50, }, { id: "int-halloween", slug: "halloween", nameSv: "Halloween", nameLocalized: "", market: "SE", dateRule: { kind: "fixed", monthDay: "10-31" }, leadDays: 7, foodTags: ["pumpa", "barnkalas", "höstmat"], recipeSlugs: ["tomatsoppa-med-basilika"], priority: 40, }, { id: "int-oktoberfest", slug: "oktoberfest", nameSv: "Oktoberfest", nameLocalized: "", market: "SE", dateRule: { kind: "range", startMonthDay: "09-20", endMonthDay: "10-05" }, leadDays: 5, foodTags: ["korv", "surkål", "öl"], recipeSlugs: [], priority: 20, }, { id: "int-ramadan-eid", slug: "eid", nameSv: "Eid al-Fitr", nameLocalized: "", market: "SE", // Rörligt datum (månkalender) – uppdateras årligen av admin tills kalenderconnector finns. dateRule: { kind: "computed", algorithm: "custom" }, leadDays: 14, foodTags: ["fest", "lamm", "dadlar", "sötsaker"], recipeSlugs: [], priority: 90, }, // --- Norge (NO) --- { id: "no-julaften", slug: "julaften", nameSv: "Julaften", nameLocalized: "Julaften", market: "NO", dateRule: { kind: "fixed", monthDay: "12-24" }, leadDays: 21, foodTags: ["ribbe", "pinnekjott", "lutefisk", "surkal", "riskrem", "medisterkake"], recipeSlugs: [], priority: 100, }, { id: "no-paske", slug: "paske", nameSv: "Påske", nameLocalized: "Påske", market: "NO", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 10, foodTags: ["lam", "egg", "appelsin", "marsipan", "paskeol"], recipeSlugs: [], priority: 90, }, { id: "no-sankthans", slug: "sankthans", nameSv: "Sankthansaften", nameLocalized: "Sankthansaften", market: "NO", dateRule: { kind: "fixed", monthDay: "06-23" }, leadDays: 7, foodTags: ["grillmat", "rommegrot", "spekemat", "jordbaer", "reker"], recipeSlugs: [], priority: 80, }, { id: "no-nyttarsaften", slug: "nyttarsaften", nameSv: "Nyttårsaften", nameLocalized: "Nyttårsaften", market: "NO", dateRule: { kind: "fixed", monthDay: "12-31" }, leadDays: 7, foodTags: ["pinnekjott", "torsk", "reker", "kransekake"], recipeSlugs: [], priority: 90, }, { id: "no-farikal", slug: "farikalens-festdag", nameSv: "Fårikålens festdag", nameLocalized: "Fårikålens festdag", market: "NO", dateRule: { kind: "nth-weekday", month: 9, weekday: 4, n: "last" }, leadDays: 5, foodTags: ["far", "kal", "pepperkorn", "potet"], recipeSlugs: [], priority: 80, }, // --- Danmark (DK) --- { id: "dk-juleaften", slug: "juleaften", nameSv: "Juleaften", nameLocalized: "Juleaften", market: "DK", dateRule: { kind: "fixed", monthDay: "12-24" }, leadDays: 21, foodTags: ["flaeskesteg", "and", "rodkal", "brunede-kartofler", "risalamande"], recipeSlugs: [], priority: 100, }, { id: "dk-paske", slug: "paske", nameSv: "Påske", nameLocalized: "Påske", market: "DK", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 7, foodTags: ["sild", "aeg", "lammesteg", "nye-kartofler", "snaps"], recipeSlugs: [], priority: 90, }, { id: "dk-nytarsaften", slug: "nytarsaften", nameSv: "Nytårsaften", nameLocalized: "Nytårsaften", market: "DK", dateRule: { kind: "fixed", monthDay: "12-31" }, leadDays: 7, foodTags: ["kogt-torsk", "kransekage", "marcipan"], recipeSlugs: [], priority: 90, }, { id: "dk-julefrokost", slug: "julefrokost", nameSv: "Julefrokost", nameLocalized: "Julefrokost", market: "DK", dateRule: { kind: "range", startMonthDay: "12-01", endMonthDay: "12-30" }, leadDays: 7, foodTags: ["sild", "frikadeller", "leverpostej", "ribbensteg", "snaps"], recipeSlugs: [], priority: 80, }, { id: "dk-mortensaften", slug: "mortensaften", nameSv: "Mortensaften", nameLocalized: "Mortensaften", market: "DK", dateRule: { kind: "fixed", monthDay: "11-10" }, leadDays: 7, foodTags: ["and", "gas", "rodkal", "brunede-kartofler", "brun-sovs"], recipeSlugs: [], priority: 75, }, // --- Finland (FI) --- { id: "fi-joulu", slug: "joulu", nameSv: "Jouluaatto", nameLocalized: "Jouluaatto", market: "FI", dateRule: { kind: "fixed", monthDay: "12-24" }, leadDays: 21, foodTags: ["joulukinkku", "lanttulaatikko", "rosolli", "graavilohi", "joulutorttu"], recipeSlugs: [], priority: 100, }, { id: "fi-paasiainen", slug: "paasiainen", nameSv: "Pääsiäinen", nameLocalized: "Pääsiäinen", market: "FI", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 7, foodTags: ["mammi", "pasha", "lammas", "suklaamuna"], recipeSlugs: [], priority: 90, }, { id: "fi-juhannus", slug: "juhannus", nameSv: "Juhannus", nameLocalized: "Juhannus", market: "FI", dateRule: { kind: "computed", algorithm: "midsummer" }, leadDays: 7, foodTags: ["grillimakkara", "uudet-perunat", "silli", "graavilohi"], recipeSlugs: [], priority: 85, }, { id: "fi-rapujuhlat", slug: "rapujuhlat", nameSv: "Rapujuhlat", nameLocalized: "Rapujuhlat", market: "FI", dateRule: { kind: "range", startMonthDay: "07-21", endMonthDay: "09-30" }, leadDays: 7, foodTags: ["rapu", "tilli", "ruisleipa", "snapsi"], recipeSlugs: [], priority: 80, }, { id: "fi-vappu", slug: "vappu", nameSv: "Vappu", nameLocalized: "Vappu", market: "FI", dateRule: { kind: "fixed", monthDay: "05-01" }, leadDays: 7, foodTags: ["sima", "tippaleipa", "munkki"], recipeSlugs: [], priority: 75, }, // --- Island (IS) --- { id: "is-adfangadagur", slug: "adfangadagur", nameSv: "Aðfangadagur", nameLocalized: "Aðfangadagur", market: "IS", dateRule: { kind: "fixed", monthDay: "12-24" }, leadDays: 21, foodTags: ["hamborgarhryggur", "hangikjot", "laufabraud", "rjupa"], recipeSlugs: [], priority: 100, }, { id: "is-paskar", slug: "paskar", nameSv: "Páskar", nameLocalized: "Páskar", market: "IS", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 5, foodTags: ["lambakjot", "lambalaeri", "paskaegg"], recipeSlugs: [], priority: 90, }, { id: "is-thorrablot", slug: "thorrablot", nameSv: "Þorrablót", nameLocalized: "Þorrablót", market: "IS", dateRule: { kind: "range", startMonthDay: "01-23", endMonthDay: "02-22" }, leadDays: 7, foodTags: ["hakarl", "svid", "hangikjot", "hardfiskur", "brennivin"], recipeSlugs: [], priority: 80, }, { id: "is-sprengidagur", slug: "sprengidagur", nameSv: "Sprengidagur", nameLocalized: "Sprengidagur", market: "IS", dateRule: { kind: "easter-offset", days: -47 }, leadDays: 3, foodTags: ["saltkjot", "baunir", "gulrofa"], recipeSlugs: [], priority: 70, }, { id: "is-thorlaksmessa", slug: "thorlaksmessa", nameSv: "Þorláksmessa", nameLocalized: "Þorláksmessa", market: "IS", dateRule: { kind: "fixed", monthDay: "12-23" }, leadDays: 5, foodTags: ["skata", "hangikjot", "rugbraud"], recipeSlugs: [], priority: 70, }, // --- Tyskland (DE) --- { id: "de-weihnachten", slug: "weihnachten", nameSv: "Weihnachten", nameLocalized: "Weihnachten", market: "DE", dateRule: { kind: "fixed", monthDay: "12-24" }, leadDays: 21, foodTags: ["gans", "karpfen", "stollen", "lebkuchen", "wurstchen"], recipeSlugs: [], priority: 100, }, { id: "de-silvester", slug: "silvester", nameSv: "Silvester", nameLocalized: "Silvester", market: "DE", dateRule: { kind: "fixed", monthDay: "12-31" }, leadDays: 6, foodTags: ["berliner", "raclette", "fondue", "linsen", "heringssalat"], recipeSlugs: [], priority: 90, }, { id: "de-ostern", slug: "ostern", nameSv: "Ostern", nameLocalized: "Ostern", market: "DE", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 10, foodTags: ["lamm", "eier", "osterbrot", "schinken", "hefezopf"], recipeSlugs: [], priority: 90, }, { id: "de-oktoberfest", slug: "oktoberfest", nameSv: "Oktoberfest", nameLocalized: "Oktoberfest", market: "DE", dateRule: { kind: "range", startMonthDay: "09-19", endMonthDay: "10-04" }, leadDays: 7, foodTags: ["hendl", "schweinshaxe", "weisswurst", "brezn", "obatzda"], recipeSlugs: [], priority: 85, }, { id: "de-karneval", slug: "karneval", nameSv: "Karneval", nameLocalized: "Karneval", market: "DE", dateRule: { kind: "easter-offset", days: -48 }, leadDays: 5, foodTags: ["krapfen", "berliner", "mutzenmandeln"], recipeSlugs: [], priority: 70, }, { id: "de-spargelzeit", slug: "spargelzeit", nameSv: "Spargelzeit", nameLocalized: "Spargelzeit", market: "DE", dateRule: { kind: "range", startMonthDay: "04-15", endMonthDay: "06-24" }, leadDays: 4, foodTags: ["spargel", "sauce-hollandaise", "schinken", "kartoffeln"], recipeSlugs: [], priority: 75, }, // --- Frankrike (FR) --- { id: "fr-reveillon-noel", slug: "reveillon-de-noel", nameSv: "Réveillon de Noël", nameLocalized: "Réveillon de Noël", market: "FR", dateRule: { kind: "fixed", monthDay: "12-24" }, leadDays: 21, foodTags: ["huitres", "foie-gras", "chapon", "marrons", "buche"], recipeSlugs: [], priority: 100, }, { id: "fr-saint-sylvestre", slug: "saint-sylvestre", nameSv: "Saint-Sylvestre", nameLocalized: "Saint-Sylvestre", market: "FR", dateRule: { kind: "fixed", monthDay: "12-31" }, leadDays: 7, foodTags: ["foie-gras", "huitres", "fruits-de-mer", "saumon-fume", "champagne"], recipeSlugs: [], priority: 90, }, { id: "fr-epiphanie", slug: "epiphanie", nameSv: "Épiphanie", nameLocalized: "Épiphanie", market: "FR", dateRule: { kind: "fixed", monthDay: "01-06" }, leadDays: 5, foodTags: ["galette-des-rois", "frangipane", "feve", "brioche"], recipeSlugs: [], priority: 80, }, { id: "fr-chandeleur", slug: "chandeleur", nameSv: "Chandeleur", nameLocalized: "Chandeleur", market: "FR", dateRule: { kind: "fixed", monthDay: "02-02" }, leadDays: 3, foodTags: ["crepes", "sucre", "citron", "confiture"], recipeSlugs: [], priority: 70, }, { id: "fr-paques", slug: "paques", nameSv: "Pâques", nameLocalized: "Pâques", market: "FR", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 10, foodTags: ["agneau", "gigot", "oeufs-chocolat", "chocolat"], recipeSlugs: [], priority: 90, }, { id: "fr-mardi-gras", slug: "mardi-gras", nameSv: "Mardi Gras", nameLocalized: "Mardi Gras", market: "FR", dateRule: { kind: "easter-offset", days: -47 }, leadDays: 3, foodTags: ["beignets", "bugnes", "merveilles", "gaufres"], recipeSlugs: [], priority: 70, }, // --- Nederländerna (NL) --- { id: "nl-sinterklaas", slug: "sinterklaas", nameSv: "Sinterklaas", nameLocalized: "Sinterklaas", market: "NL", dateRule: { kind: "fixed", monthDay: "12-05" }, leadDays: 14, foodTags: ["kruidnoten", "pepernoten", "chocoladeletter", "speculaas", "banketstaaf"], recipeSlugs: [], priority: 95, }, { id: "nl-kerst", slug: "kerst", nameSv: "Kerst", nameLocalized: "Kerst", market: "NL", dateRule: { kind: "fixed", monthDay: "12-25" }, leadDays: 14, foodTags: ["gourmet", "rollade", "kerststol", "kerstkransjes"], recipeSlugs: [], priority: 100, }, { id: "nl-oud-en-nieuw", slug: "oud-en-nieuw", nameSv: "Oud en Nieuw", nameLocalized: "Oud en Nieuw", market: "NL", dateRule: { kind: "fixed", monthDay: "12-31" }, leadDays: 5, foodTags: ["oliebollen", "appelflappen", "appelbeignets"], recipeSlugs: [], priority: 90, }, { id: "nl-pasen", slug: "pasen", nameSv: "Pasen", nameLocalized: "Pasen", market: "NL", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 10, foodTags: ["eieren", "paasstol", "paasbrood", "lamsvlees"], recipeSlugs: [], priority: 85, }, { id: "nl-koningsdag", slug: "koningsdag", nameSv: "Koningsdag", nameLocalized: "Koningsdag", market: "NL", dateRule: { kind: "fixed", monthDay: "04-27" }, leadDays: 5, foodTags: ["tompouce", "oranje", "gebak"], recipeSlugs: [], priority: 65, }, // --- Spanien (ES) --- { id: "es-navidad", slug: "navidad", nameSv: "Navidad", nameLocalized: "Navidad", market: "ES", dateRule: { kind: "fixed", monthDay: "12-24" }, leadDays: 21, foodTags: ["turron", "mazapan", "polvorones", "cordero", "langostinos", "besugo"], recipeSlugs: [], priority: 100, }, { id: "es-nochevieja", slug: "nochevieja", nameSv: "Nochevieja", nameLocalized: "Nochevieja", market: "ES", dateRule: { kind: "fixed", monthDay: "12-31" }, leadDays: 7, foodTags: ["uvas", "cava", "langostinos", "marisco", "jamon"], recipeSlugs: [], priority: 90, }, { id: "es-reyes", slug: "reyes", nameSv: "Día de Reyes", nameLocalized: "Día de Reyes", market: "ES", dateRule: { kind: "fixed", monthDay: "01-06" }, leadDays: 5, foodTags: ["roscon", "nata", "chocolate", "fruta-escarchada"], recipeSlugs: [], priority: 85, }, { id: "es-semana-santa", slug: "semana-santa", nameSv: "Semana Santa", nameLocalized: "Semana Santa", market: "ES", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 10, foodTags: ["torrijas", "bacalao", "garbanzos", "pestinos", "potaje"], recipeSlugs: [], priority: 90, }, { id: "es-san-juan", slug: "san-juan", nameSv: "Noche de San Juan", nameLocalized: "Noche de San Juan", market: "ES", dateRule: { kind: "fixed", monthDay: "06-23" }, leadDays: 5, foodTags: ["coca", "sardinas", "cava", "pinones"], recipeSlugs: [], priority: 75, }, { id: "es-la-castanada", slug: "la-castanada", nameSv: "La Castañada", nameLocalized: "La Castañada", market: "ES", dateRule: { kind: "fixed", monthDay: "11-01" }, leadDays: 5, foodTags: ["castanas", "panellets", "boniatos", "huesos-de-santo"], recipeSlugs: [], priority: 70, }, // --- Italien (IT) --- { id: "it-natale", slug: "natale", nameSv: "Natale", nameLocalized: "Natale", market: "IT", dateRule: { kind: "fixed", monthDay: "12-25" }, leadDays: 21, foodTags: ["panettone", "pandoro", "tortellini", "baccala", "cotechino", "arista"], recipeSlugs: [], priority: 100, }, { id: "it-capodanno", slug: "capodanno", nameSv: "Capodanno", nameLocalized: "Capodanno", market: "IT", dateRule: { kind: "fixed", monthDay: "12-31" }, leadDays: 7, foodTags: ["cotechino", "zampone", "lenticchie", "spumante"], recipeSlugs: [], priority: 90, }, { id: "it-epifania", slug: "epifania", nameSv: "Epifania", nameLocalized: "Epifania", market: "IT", dateRule: { kind: "fixed", monthDay: "01-06" }, leadDays: 5, foodTags: ["befanini", "carbone-dolce", "panettone"], recipeSlugs: [], priority: 75, }, { id: "it-carnevale", slug: "carnevale", nameSv: "Carnevale", nameLocalized: "Carnevale", market: "IT", dateRule: { kind: "easter-offset", days: -47 }, leadDays: 7, foodTags: ["chiacchiere", "castagnole", "frittelle"], recipeSlugs: [], priority: 75, }, { id: "it-pasqua", slug: "pasqua", nameSv: "Pasqua", nameLocalized: "Pasqua", market: "IT", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 14, foodTags: ["agnello", "colomba", "torta-pasqualina", "casatiello", "pastiera"], recipeSlugs: [], priority: 90, }, { id: "it-ferragosto", slug: "ferragosto", nameSv: "Ferragosto", nameLocalized: "Ferragosto", market: "IT", dateRule: { kind: "fixed", monthDay: "08-15" }, leadDays: 5, foodTags: ["grigliata", "pollo-ai-peperoni", "anguria", "pasta-fredda"], recipeSlugs: [], priority: 80, }, // --- Portugal (PT) --- { id: "pt-natal", slug: "natal", nameSv: "Natal", nameLocalized: "Natal", market: "PT", dateRule: { kind: "fixed", monthDay: "12-24" }, leadDays: 21, foodTags: ["bacalhau", "polvo", "rabanadas", "filhoses", "bolo-rei", "arroz-doce"], recipeSlugs: [], priority: 100, }, { id: "pt-ano-novo", slug: "ano-novo", nameSv: "Ano Novo", nameLocalized: "Ano Novo", market: "PT", dateRule: { kind: "fixed", monthDay: "12-31" }, leadDays: 7, foodTags: ["passas", "bacalhau", "peru", "roupa-velha", "espumante"], recipeSlugs: [], priority: 85, }, { id: "pt-dia-de-reis", slug: "dia-de-reis", nameSv: "Dia de Reis", nameLocalized: "Dia de Reis", market: "PT", dateRule: { kind: "fixed", monthDay: "01-06" }, leadDays: 5, foodTags: ["bolo-rei", "bolo-rainha", "fruta-cristalizada"], recipeSlugs: [], priority: 75, }, { id: "pt-pascoa", slug: "pascoa", nameSv: "Páscoa", nameLocalized: "Páscoa", market: "PT", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 14, foodTags: ["cordeiro", "cabrito", "folar", "amendoas", "pao-de-lo"], recipeSlugs: [], priority: 90, }, { id: "pt-santos-populares", slug: "santos-populares", nameSv: "Santos Populares", nameLocalized: "Santos Populares", market: "PT", dateRule: { kind: "range", startMonthDay: "06-12", endMonthDay: "06-29" }, leadDays: 5, foodTags: ["sardinhas", "caldo-verde", "bifana", "pao-com-chourico"], recipeSlugs: [], priority: 85, }, { id: "pt-sao-martinho", slug: "sao-martinho", nameSv: "São Martinho", nameLocalized: "São Martinho", market: "PT", dateRule: { kind: "fixed", monthDay: "11-11" }, leadDays: 5, foodTags: ["castanhas", "agua-pe", "jeropiga"], recipeSlugs: [], priority: 70, }, // --- Polen (PL) --- { id: "pl-wigilia", slug: "wigilia", nameSv: "Wigilia", nameLocalized: "Wigilia", market: "PL", dateRule: { kind: "fixed", monthDay: "12-24" }, leadDays: 21, foodTags: ["barszcz", "pierogi", "karp", "kapusta-z-grzybami", "sledz", "kutia"], recipeSlugs: [], priority: 100, }, { id: "pl-boze-narodzenie", slug: "boze-narodzenie", nameSv: "Boże Narodzenie", nameLocalized: "Boże Narodzenie", market: "PL", dateRule: { kind: "fixed", monthDay: "12-25" }, leadDays: 14, foodTags: ["bigos", "kielbasa", "pieczen", "zurek", "schab"], recipeSlugs: [], priority: 90, }, { id: "pl-wielkanoc", slug: "wielkanoc", nameSv: "Wielkanoc", nameLocalized: "Wielkanoc", market: "PL", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 14, foodTags: ["zurek", "biala-kielbasa", "jajka", "cwikla", "mazurek", "babka"], recipeSlugs: [], priority: 90, }, { id: "pl-tlusty-czwartek", slug: "tlusty-czwartek", nameSv: "Tłusty Czwartek", nameLocalized: "Tłusty Czwartek", market: "PL", dateRule: { kind: "easter-offset", days: -52 }, leadDays: 3, foodTags: ["paczki", "faworki", "chrust"], recipeSlugs: [], priority: 75, }, { id: "pl-sylwester", slug: "sylwester", nameSv: "Sylwester", nameLocalized: "Sylwester", market: "PL", dateRule: { kind: "fixed", monthDay: "12-31" }, leadDays: 5, foodTags: ["sledz", "tatar", "barszcz", "kielbasa"], recipeSlugs: [], priority: 80, }, // --- Storbritannien (GB) --- { id: "gb-christmas", slug: "christmas", nameSv: "Christmas", nameLocalized: "Christmas", market: "GB", dateRule: { kind: "fixed", monthDay: "12-25" }, leadDays: 21, foodTags: [ "turkey", "roast-potatoes", "pigs-in-blankets", "brussels-sprouts", "christmas-pudding", "mince-pies", ], recipeSlugs: [], priority: 100, }, { id: "gb-easter", slug: "easter", nameSv: "Easter", nameLocalized: "Easter", market: "GB", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 12, foodTags: ["roast-lamb", "mint-sauce", "hot-cross-buns", "simnel-cake"], recipeSlugs: [], priority: 90, }, { id: "gb-pancake-day", slug: "pancake-day", nameSv: "Pancake Day", nameLocalized: "Pancake Day", market: "GB", dateRule: { kind: "easter-offset", days: -47 }, leadDays: 5, foodTags: ["pancakes", "lemon", "sugar", "golden-syrup"], recipeSlugs: [], priority: 75, }, { id: "gb-bonfire-night", slug: "bonfire-night", nameSv: "Bonfire Night", nameLocalized: "Bonfire Night", market: "GB", dateRule: { kind: "fixed", monthDay: "11-05" }, leadDays: 5, foodTags: ["bonfire-toffee", "parkin", "toffee-apples", "jacket-potatoes", "sausages"], recipeSlugs: [], priority: 75, }, { id: "gb-burns-night", slug: "burns-night", nameSv: "Burns Night", nameLocalized: "Burns Night", market: "GB", dateRule: { kind: "fixed", monthDay: "01-25" }, leadDays: 7, foodTags: ["haggis", "neeps", "tatties", "cranachan"], recipeSlugs: [], priority: 70, }, { id: "gb-boxing-day", slug: "boxing-day", nameSv: "Boxing Day", nameLocalized: "Boxing Day", market: "GB", dateRule: { kind: "fixed", monthDay: "12-26" }, leadDays: 3, foodTags: ["turkey-leftovers", "bubble-and-squeak", "cold-cuts", "pork-pie"], recipeSlugs: [], priority: 65, }, // --- USA (US) --- { id: "us-thanksgiving", slug: "thanksgiving", nameSv: "Thanksgiving", nameLocalized: "Thanksgiving", market: "US", dateRule: { kind: "nth-weekday", month: 11, weekday: 4, n: 4 }, leadDays: 21, foodTags: [ "turkey", "stuffing", "mashed-potatoes", "gravy", "cranberry-sauce", "green-bean-casserole", "pumpkin-pie", ], recipeSlugs: [], priority: 100, }, { id: "us-christmas", slug: "christmas", nameSv: "Christmas", nameLocalized: "Christmas", market: "US", dateRule: { kind: "fixed", monthDay: "12-25" }, leadDays: 21, foodTags: ["ham", "prime-rib", "roast-turkey", "christmas-cookies", "eggnog"], recipeSlugs: [], priority: 100, }, { id: "us-fourth-of-july", slug: "fourth-of-july", nameSv: "Independence Day", nameLocalized: "Independence Day", market: "US", dateRule: { kind: "fixed", monthDay: "07-04" }, leadDays: 7, foodTags: [ "hamburgers", "hot-dogs", "bbq-ribs", "corn-on-the-cob", "potato-salad", "apple-pie", ], recipeSlugs: [], priority: 85, }, { id: "us-super-bowl", slug: "super-bowl", nameSv: "Super Bowl", nameLocalized: "Super Bowl", market: "US", dateRule: { kind: "nth-weekday", month: 2, weekday: 0, n: 2 }, leadDays: 5, foodTags: ["chicken-wings", "nachos", "chili", "guacamole", "sliders"], recipeSlugs: [], priority: 80, }, { id: "us-easter", slug: "easter", nameSv: "Easter", nameLocalized: "Easter", market: "US", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 10, foodTags: ["ham", "deviled-eggs", "scalloped-potatoes", "carrot-cake"], recipeSlugs: [], priority: 85, }, { id: "us-memorial-day", slug: "memorial-day", nameSv: "Memorial Day", nameLocalized: "Memorial Day", market: "US", dateRule: { kind: "nth-weekday", month: 5, weekday: 1, n: "last" }, leadDays: 5, foodTags: ["hamburgers", "hot-dogs", "bbq", "baked-beans", "potato-salad"], recipeSlugs: [], priority: 75, }, // --- Kanada (CA) --- { id: "ca-thanksgiving", slug: "thanksgiving", nameSv: "Thanksgiving", nameLocalized: "Thanksgiving", market: "CA", dateRule: { kind: "nth-weekday", month: 10, weekday: 1, n: 2 }, leadDays: 14, foodTags: [ "turkey", "stuffing", "gravy", "cranberry-sauce", "pumpkin-pie", "butter-tarts", ], recipeSlugs: [], priority: 100, }, { id: "ca-christmas", slug: "christmas", nameSv: "Christmas", nameLocalized: "Christmas", market: "CA", dateRule: { kind: "fixed", monthDay: "12-25" }, leadDays: 21, foodTags: ["turkey", "ham", "tourtiere", "butter-tarts", "nanaimo-bars"], recipeSlugs: [], priority: 100, }, { id: "ca-canada-day", slug: "canada-day", nameSv: "Canada Day", nameLocalized: "Canada Day", market: "CA", dateRule: { kind: "fixed", monthDay: "07-01" }, leadDays: 5, foodTags: ["bbq", "hamburgers", "hot-dogs", "poutine", "maple"], recipeSlugs: [], priority: 80, }, { id: "ca-easter", slug: "easter", nameSv: "Easter", nameLocalized: "Easter", market: "CA", dateRule: { kind: "computed", algorithm: "easter" }, leadDays: 10, foodTags: ["ham", "roast-lamb", "scalloped-potatoes", "hot-cross-buns"], recipeSlugs: [], priority: 85, }, ];