DAYPARTS = [ {"slug": "breakfast", "name": "Frühstück", "sort_order": 10}, {"slug": "morning-snack", "name": "Vormittagssnack", "sort_order": 20}, {"slug": "lunch", "name": "Mittagessen", "sort_order": 30}, {"slug": "afternoon-snack", "name": "Nachmittagssnack", "sort_order": 40}, {"slug": "dinner", "name": "Abendessen", "sort_order": 50}, {"slug": "late-snack", "name": "Später Snack", "sort_order": 60}, ] DAYPART_SLUG_TO_MEAL_TYPE = { "breakfast": "breakfast", "morning-snack": "snack", "lunch": "lunch", "afternoon-snack": "snack", "dinner": "dinner", "late-snack": "snack", } DEFAULT_CATEGORIES = [ "Kohlenhydrate", "Milchprodukt", "Obst", "Gemüse", "Eiweißquelle", "Snack", "Getränk", "Vorrat & Basics", "Warmes", "Kleines Essen", ] DEFAULT_CATEGORY_BUILDERS = { "Kohlenhydrate": "carb", "Brot & Getreide": "carb", "Milchprodukt": "dairy", "Obst": "fruit", "Gemüse": "veg", "Eiweißquelle": "protein", "Snack": "neutral", "Getränk": "neutral", "Vorrat & Basics": "neutral", "Warmes": "carb", "Kleines Essen": "neutral", } BUILDER_LABELS = { "protein": "Proteinquelle", "carb": "Kohlenhydratquelle", "veg": "Gemüse / Ballaststoffquelle", "nuts": "Nüsse", "seeds": "Saaten", "fruit": "Obst", "dairy": "Milchprodukt", "neutral": "Neutral / sonstiges", } BUILDER_DESCRIPTIONS = { "protein": "Passt eher zu sättigenden Eiweißquellen.", "carb": "Passt eher zu Brot, Getreide, Reis, Kartoffeln oder ähnlichem.", "veg": "Passt eher zu Gemüse oder ballaststoffreichen Begleitern.", "nuts": "Passt eher zu Nüssen.", "seeds": "Passt eher zu Saaten.", "fruit": "Passt eher zu Obst.", "dairy": "Passt eher zu Joghurt, Milch, Käse oder ähnlichem.", "neutral": "Ohne feste Zuordnung, aber weiterhin gut nutzbar.", } BUILDER_OPTIONS = [(key, label) for key, label in BUILDER_LABELS.items()] FOOD_ROLE_LABELS = { "main": "Hauptbaustein", "base": "Basis", "complement": "Ergänzung", "topping": "Topping", "cooking": "Kochzutat", "snack": "Snack-Baustein", "solo": "Schnelle Einzelmahlzeit", } FOOD_ROLE_DESCRIPTIONS = { "main": "Kann einen Teller oder eine Hauptmahlzeit deutlich tragen.", "base": "Passt gut als Grundlage und lässt sich ruhig ergänzen.", "complement": "Hilft beim Ergänzen, steht aber selten für sich allein.", "topping": "Passt eher oben drauf oder als kleines Extra.", "cooking": "Hilft beim Kochen oder Abschmecken, ist aber selten selbst die Mahlzeit.", "snack": "Passt gut für kleine Zwischenmahlzeiten oder als ruhige Ergänzung.", "solo": "Kann auch alleine als schnelle, einfache Mahlzeit funktionieren.", } FOOD_ROLE_OPTIONS = [(key, label) for key, label in FOOD_ROLE_LABELS.items()] SUGGESTION_PRIORITY_OPTIONS = [ ("prefer", "Gern vorschlagen"), ("normal", "Normal vorschlagen"), ("rare", "Eher selten automatisch vorschlagen"), ("never", "Nie automatisch vorschlagen"), ] SUGGESTION_PRIORITY_LABELS = { "prefer": "Gern vorschlagen", "normal": "Normal vorschlagen", "rare": "Eher selten automatisch vorschlagen", "never": "Nie automatisch vorschlagen", } ENERGY_DENSITY_OPTIONS = [ ("low", "Eher leicht"), ("neutral", "Neutral"), ("high", "Eher gehaltvoll"), ] ENERGY_DENSITY_LABELS = { "low": "Eher leicht", "neutral": "Neutral", "high": "Eher gehaltvoll", } SUGGESTION_STYLE_OPTIONS = [ ("balanced", "Eher ausgewogen"), ("fitness", "Fitness"), ("protein", "Proteinbetont"), ("easy", "Leicht und einfach"), ("snack", "Snackorientiert"), ] SUGGESTION_STYLE_LABELS = { "balanced": "Eher ausgewogen", "fitness": "Fitness", "protein": "Proteinbetont", "easy": "Leicht und einfach", "snack": "Snackorientiert", } PROTEIN_PREFERENCE_OPTIONS = [ ("mixed", "Offen gemischt"), ("veg-friendly", "Überwiegend vegetarisch"), ("rare-animal", "Fleisch und Fisch nur selten"), ("plant-forward", "Möglichst pflanzlich"), ] PROTEIN_PREFERENCE_LABELS = { "mixed": "Offen gemischt", "veg-friendly": "Überwiegend vegetarisch", "rare-animal": "Fleisch und Fisch nur selten", "plant-forward": "Möglichst pflanzlich", } MEAL_TYPE_OPTIONS = [ ("breakfast", "Frühstück"), ("lunch", "Mittagessen"), ("dinner", "Abendessen"), ("snack", "Snack"), ] MEAL_TYPE_LABELS = { "breakfast": "Frühstück", "lunch": "Mittagessen", "dinner": "Abendessen", "snack": "Snack", } MEAL_STYLE_OPTIONS = [ ("sweet", "Süß"), ("savory", "Herzhaft"), ("warm", "Warm"), ("cold", "Kalt"), ("quick", "Schnell"), ("simple", "Ruhig und einfach"), ("prep", "Gut vorbereitbar"), ("portable", "Für unterwegs"), ] MEAL_STYLE_LABELS = { "sweet": "Süß", "savory": "Herzhaft", "warm": "Warm", "cold": "Kalt", "quick": "Schnell", "simple": "Ruhig und einfach", "prep": "Gut vorbereitbar", "portable": "Für unterwegs", } WEEKDAY_OPTIONS = [ (0, "Montag"), (1, "Dienstag"), (2, "Mittwoch"), (3, "Donnerstag"), (4, "Freitag"), (5, "Samstag"), (6, "Sonntag"), ] NOTIFICATION_CHANNEL_OPTIONS = [ ("in_app", "Nur in der App"), ("push", "Nur Push"), ("both", "App und Push"), ] ITEM_KIND_LABELS = { "food": "Lebensmittel", "meal": "Mahlzeitenideen", } ITEM_KIND_SINGULAR_LABELS = { "food": "Lebensmittel", "meal": "Mahlzeitenidee", } AVAILABILITY_LABELS = { "idea": "Merkliste", "home": "Zuhause", "archived": "Archiv", } ROLE_LABELS = { "admin": "Admin", "member": "Mitglied", } VISIBILITY_LABELS = { "shared": "Gemeinsam", "personal": "Persönlich", } VISIBILITY_DESCRIPTIONS = { "shared": "Gemeinsam im Haushalt sichtbar und nutzbar.", "personal": "Nur für dich sichtbar und planbar.", } DAY_TEMPLATE_NAME_SUGGESTIONS = [ "Ruhiger Tag", "Einfacher Bürotag", "Schwieriger Tag", "Standard-Frühstückstag", "Tag mit wenig Energie", ] WEEK_TEMPLATE_NAME_SUGGESTIONS = [ "Standardwoche", "Büro-Woche", "Leichte Woche", "Woche mit wenig Energie", "Frühstücks-Woche", ] ITEM_SET_NAME_SUGGESTIONS = [ "Schnelles Frühstück", "Sicherer Snack", "Einfaches Abendessen", "Einkauf für zwei Tage", ]