feat: recipe detail + weekly shopping list (PRD §5.1, §5.4)
Recipe detail - Seed catalog of 33 italian ingredients with macros, allergens, avg price. - Each seed recipe now declares its RecipeIngredient links (qty + unit). - /recipes/[id] page: editorial layout with prep meta, ingredients list, macros block, preparation, chef's note. Plan-week meal names linkable. Shopping list - GET /me/shopping-list aggregates RecipeIngredient quantities of the ACTIVE plan, grouped by ingredient category, sorted alphabetically. - /shopping page: total items, estimated cost, per-category checklist with check-off persisted in localStorage per plan id. - Home gets a "Spesa" nav item; /plan links the list when a plan exists. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
b79340efb7
commit
ad1e4ecaeb
13 files changed
+1331
-14
No files matched your search
@@ -9,6 +9,7 @@
|
||||
"signOut": "Esci",
|
||||
"completeProfile": "Profilo & calcoli",
|
||||
"viewPlan": "Piano della settimana",
|
||||
"viewShopping": "Lista della spesa",
|
||||
"viewTracking": "Pesata & misure",
|
||||
"viewFasting": "Digiuno intermittente",
|
||||
"lettura": "Continua la lettura",
|
||||
@@ -164,6 +165,64 @@
|
||||
"delta": "Variazione",
|
||||
"emptyHistory": "Nessuna rilevazione registrata. Inserisci la prima a destra: la tendenza apparirà dopo due o tre pesate."
|
||||
},
|
||||
"Shopping": {
|
||||
"title": "La spesa della settimana",
|
||||
"subtitle": "Tutto ciò che ti serve per il piano in corso, raggruppato per reparto.",
|
||||
"noPlan": "Genera prima un piano della settimana: la lista comparirà qui.",
|
||||
"viewPlan": "Vai al piano",
|
||||
"groupSize": "{n} articoli",
|
||||
"totalLabel": "Totale articoli",
|
||||
"estimatedCost": "Spesa stimata",
|
||||
"checked": "{n} di {total}",
|
||||
"fromRecipes": "Per: {names}",
|
||||
"categoryLabel": {
|
||||
"verdura": "Verdura",
|
||||
"frutta": "Frutta",
|
||||
"carne": "Carne",
|
||||
"pesce": "Pesce",
|
||||
"latticini": "Latticini",
|
||||
"uova": "Uova",
|
||||
"condimenti": "Condimenti",
|
||||
"panetteria": "Panetteria",
|
||||
"frutta-secca": "Frutta secca",
|
||||
"erbe": "Erbe e spezie",
|
||||
"salumi": "Salumi"
|
||||
},
|
||||
"viewCart": "Lista spesa"
|
||||
},
|
||||
"Recipe": {
|
||||
"title": "Ricetta",
|
||||
"back": "← Torna al piano",
|
||||
"ingredientsTitle": "Ingredienti",
|
||||
"ingredientsSubtitle": "Per una porzione singola",
|
||||
"preparationTitle": "Preparazione",
|
||||
"preparationFallback": "Mescola gli ingredienti seguendo l'ordine indicato e cuoci come preferisci.",
|
||||
"macrosTitle": "Valori per porzione",
|
||||
"kcal": "Calorie",
|
||||
"protein": "Proteine",
|
||||
"fat": "Grassi",
|
||||
"netCarb": "Carb. netti",
|
||||
"metaTitle": "Scheda ricetta",
|
||||
"prepTime": "Preparazione",
|
||||
"minutes": "{n} min",
|
||||
"difficulty": "Difficoltà",
|
||||
"phase": "Fase",
|
||||
"phasesAll": "Tutte le fasi",
|
||||
"phasesSome": "Fase {phases}",
|
||||
"notesChef": "Nota dello chef",
|
||||
"difficultyLabel": {
|
||||
"FACILE": "Facile",
|
||||
"MEDIA": "Media",
|
||||
"ELABORATA": "Elaborata"
|
||||
},
|
||||
"categoryLabel": {
|
||||
"COLAZIONE": "Colazione",
|
||||
"PRANZO": "Pranzo",
|
||||
"SPUNTINO": "Spuntino",
|
||||
"CENA": "Cena"
|
||||
},
|
||||
"notFound": "Ricetta non trovata."
|
||||
},
|
||||
"Plan": {
|
||||
"title": "Il tuo piano",
|
||||
"weekOf": "Settimana del {date}",
|
||||
|
||||
Reference in new issue
Block a user