// Seed catalogo ricette italiane keto/low-carb (PRD §5.1). // 46 ricette distribuite su COLAZIONE/PRANZO/SPUNTINO/CENA, fasi 1/2/3. // Macros stimati per porzione singola. // // Ogni ricetta dichiara una lista di `ingredients` con quantità e unità, // usata dal seeder per creare i record `RecipeIngredient`. Il `name` deve // corrispondere esattamente a un ingrediente di `seed-ingredients.ts`. // // `variants` espone alternative testuali alla ricetta (es. versione // vegetariana o senza lattosio) — vengono salvate in Recipe.variants. // `substitutes` su un singolo ingrediente sovrascrive la mappa default // (DEFAULT_SUBSTITUTES_BY_INGREDIENT) per quella ricetta specifica. import type { Difficulty, MealCategory } from '@prisma/client'; export interface RecipeVariant { name: string; description: string; kcalDelta?: number; } export interface SeedRecipeIngredient { name: string; quantity: number; unit: string; /** Se omesso, viene preso da DEFAULT_SUBSTITUTES_BY_INGREDIENT. */ substitutes?: string[]; } export interface SeedRecipe { name: string; category: MealCategory; description: string; prepMinutes: number; difficulty: Difficulty; kcal: number; proteinG: number; fatG: number; netCarbG: number; phases: number[]; notesChef?: string; ingredients: SeedRecipeIngredient[]; variants?: RecipeVariant[]; } // Sostituzioni "ragionevoli" per ingrediente, riusate da tutte le ricette. // Il seeder le applica a `RecipeIngredient.substitutes` quando la ricetta // non specifica un override esplicito. Riempire qui evita di ripetere le // stesse sostituzioni in 46 ricette × N ingredienti. export const DEFAULT_SUBSTITUTES_BY_INGREDIENT: Record = { // Pesci → interscambiabili, attenzione al gusto 'Filetto di salmone': ['trota salmonata', 'sgombro fresco', 'tonno fresco'], Sgombro: ['salmone', 'sardine fresche', 'palamita'], Branzino: ['orata', 'spigola', 'dentice'], "Tonno sott'olio": ['sgombro al naturale', 'salmone affumicato', 'pollo lessato'], Gamberi: ['mazzancolle', 'scampi puliti', 'calamari a strisce'], // Carni 'Petto di pollo': ['petto di tacchino', 'fesa di pollo bio', 'sovracoscia disossata'], 'Petto di tacchino': ['petto di pollo', 'lonza di maiale magra'], 'Tagliata di manzo': ['tagliata di scottona', 'controfiletto', 'flank steak'], 'Pancetta affumicata': ['guanciale', 'speck a cubetti', 'pancetta dolce'], 'Prosciutto crudo': ['speck stagionato', 'culatello', 'coppa stagionata'], Bresaola: ['carpaccio di manzo', 'roastbeef sottile', "tonno sott'olio"], // Latticini → versioni lactose-free quando possibile 'Yogurt greco intero': ['skyr intero', 'yogurt di cocco non zuccherato'], 'Parmigiano Reggiano': ['Grana Padano', 'pecorino romano stagionato'], 'Grana Padano': ['Parmigiano Reggiano', 'pecorino dolce'], 'Mozzarella di bufala': ['fiordilatte', 'burrata (porzione ridotta)'], Stracchino: ['robiola', 'crescenza', 'philadelphia'], Mascarpone: ['ricotta intera setacciata', 'cream cheese intero'], Ricotta: ['ricotta di capra', 'fiocchi di latte'], 'Ricotta vaccina': ['ricotta di pecora', 'fiocchi di latte', 'cottage cheese'], 'Gorgonzola dolce DOP': ['taleggio', 'roquefort', 'fontina'], Burro: ['ghee', 'olio di cocco extravergine'], // Uova / vegetali Uova: ['tofu strapazzato (versione vegana)'], Avocado: ['mezzo avocado piccolo', 'guacamole non zuccherato'], Spinaci: ['bietole', 'cime di rapa', 'lattuga romana saltata'], 'Spinaci freschi': ['bietole', 'cime di rapa', 'spinaci surgelati'], 'Spinaci surgelati': ['spinaci freschi (porzione doppia)', 'bietole'], Asparagi: ['fagiolini', 'broccoletti', 'puntarelle'], Zucchine: ['cetrioli grandi', 'zucchina chiara', 'finocchi'], 'Pomodorini ciliegino': ['pomodori datterini', 'cuore di bue a cubetti'], 'Insalata mista': ['valeriana', 'songino', 'rucola e radicchio'], Rucola: ['valeriana', 'spinacino baby'], Cavolfiore: ['broccoli', 'cavolo romanesco'], Broccoli: ['cavolfiore', 'broccoletti'], 'Funghi champignon': ['funghi cardoncelli', 'funghi porcini'], Melanzane: ['zucchine', 'peperoni'], Peperoni: ['zucchine', 'pomodori ramati'], Cetrioli: ['sedano croccante', 'finocchi a fettine'], Carote: ['carote viola', 'pastinaca cotta (fase 2+)'], // Frutta 'Frutti di bosco misti': ['lamponi', 'mirtilli', 'fragoline di bosco'], Mela: ['pera (porzione ridotta)', 'kiwi'], Pera: ['mela'], Limone: ['lime', 'aceto di mele'], // Frutta secca / semi Mandorle: ['nocciole', 'noci pecan'], Noci: ['mandorle', 'pinoli'], 'Semi di chia': ['semi di lino macinati', 'psillio'], 'Cocco rapè non zuccherato': ['mandorle a scaglie', 'farina di cocco'], // Condimenti / panetteria 'Olio extravergine di oliva': ['olio di avocado', 'olio di sesamo per piatti orientali'], 'Olive nere': ['olive di Gaeta', 'olive taggiasche'], 'Olive verdi': ['olive di Castelvetrano', 'olive baresane'], 'Capperi sotto sale': ["capperi sott'aceto (sgocciolati)", 'olive nere tritate'], 'Pane proteico di mandorle': ['cracker di semi keto', 'foglie di lattuga (per wrap)'], 'Aceto balsamico': ['aceto di mele', 'glassa di balsamico keto-friendly'], 'Cannella in polvere': ['cardamomo', 'noce moscata'], 'Basilico fresco': ['mentuccia', 'foglie di prezzemolo'], // Legumi / cereali (fase 2+) 'Lenticchie cotte': ['ceci cotti', 'fagioli cannellini'], 'Ceci cotti': ['lenticchie cotte', 'fagioli borlotti'], 'Quinoa cotta': ['miglio cotto', 'farro perlato cotto'], }; export const SEED_RECIPES: SeedRecipe[] = [ // COLAZIONE { name: 'Frittata di spinaci e parmigiano', category: 'COLAZIONE', description: 'Tre uova con spinaci saltati e parmigiano grattugiato.', prepMinutes: 10, difficulty: 'FACILE', kcal: 360, proteinG: 28, fatG: 26, netCarbG: 4, phases: [1, 2, 3], notesChef: 'Cuoci la frittata a fuoco basso, coperta: la consistenza resta morbida e le uova non bruciano.', ingredients: [ { name: 'Uova', quantity: 3, unit: 'pz' }, { name: 'Spinaci freschi', quantity: 80, unit: 'g' }, { name: 'Parmigiano Reggiano', quantity: 20, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], variants: [ { name: 'Versione senza lattosio', description: 'Sostituisci il parmigiano con 30 g di lievito alimentare in scaglie.', kcalDelta: -40, }, { name: 'Più saziante', description: 'Aggiungi una fetta di prosciutto crudo a julienne durante la cottura.', kcalDelta: 90, }, ], }, { name: 'Yogurt greco con noci e cannella', category: 'COLAZIONE', description: 'Yogurt greco intero con un cucchiaio di noci tritate.', prepMinutes: 3, difficulty: 'FACILE', kcal: 320, proteinG: 18, fatG: 22, netCarbG: 8, phases: [1, 2, 3], ingredients: [ { name: 'Yogurt greco intero', quantity: 200, unit: 'g' }, { name: 'Noci', quantity: 20, unit: 'g' }, { name: 'Cannella in polvere', quantity: 1, unit: 'cucchiaino' }, ], variants: [ { name: 'Versione vegana', description: 'Yogurt di cocco non zuccherato al posto di quello greco.', kcalDelta: -50, }, { name: 'Con frutti di bosco (Fase 2+)', description: 'Aggiungi 50 g di mirtilli o lamponi: porta zuccheri naturali ma resta sotto i 12 g di carb netti.', kcalDelta: 25, }, ], }, { name: 'Avocado toast keto su pane di mandorle', category: 'COLAZIONE', description: 'Mezzo avocado schiacciato su una fetta di pane proteico.', prepMinutes: 5, difficulty: 'FACILE', kcal: 380, proteinG: 12, fatG: 30, netCarbG: 6, phases: [1, 2, 3], ingredients: [ { name: 'Avocado', quantity: 0.5, unit: 'pz' }, { name: 'Pane proteico di mandorle', quantity: 40, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, { name: 'Limone', quantity: 0.25, unit: 'pz' }, ], }, { name: 'Uova strapazzate con pancetta', category: 'COLAZIONE', description: 'Due uova strapazzate al burro con pancetta croccante.', prepMinutes: 8, difficulty: 'FACILE', kcal: 410, proteinG: 24, fatG: 33, netCarbG: 2, phases: [1, 2, 3], ingredients: [ { name: 'Uova', quantity: 2, unit: 'pz' }, { name: 'Pancetta affumicata', quantity: 30, unit: 'g' }, { name: 'Burro', quantity: 10, unit: 'g' }, ], variants: [ { name: 'Senza maiale', description: 'Sostituisci la pancetta con bresaola o tacchino arrosto a striscioline.', kcalDelta: -80, }, { name: 'Con verdure', description: 'Aggiungi 50 g di funghi champignon trifolati o pomodorini saltati.', }, ], }, // PRANZO { name: 'Insalata di pollo, avocado e pomodorini', category: 'PRANZO', description: 'Petto di pollo grigliato, avocado, pomodorini, olio EVO.', prepMinutes: 15, difficulty: 'FACILE', kcal: 540, proteinG: 38, fatG: 36, netCarbG: 9, phases: [1, 2, 3], ingredients: [ { name: 'Petto di pollo', quantity: 130, unit: 'g' }, { name: 'Avocado', quantity: 0.5, unit: 'pz' }, { name: 'Pomodorini ciliegino', quantity: 100, unit: 'g' }, { name: 'Insalata mista', quantity: 60, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 2, unit: 'cucchiaio' }, ], variants: [ { name: 'Versione vegetariana', description: 'Pollo sostituito da 100 g di tofu marinato o 2 uova sode.', kcalDelta: -100, }, { name: 'Con feta e olive', description: 'Aggiungi 40 g di feta sbriciolata e 8 olive Kalamata: stile mediterraneo.', kcalDelta: 130, }, ], }, { name: 'Salmone al forno con asparagi', category: 'PRANZO', description: 'Filetto di salmone con asparagi al forno e limone.', prepMinutes: 20, difficulty: 'FACILE', kcal: 510, proteinG: 36, fatG: 35, netCarbG: 6, phases: [1, 2, 3], notesChef: 'Inforna a 200°C per 12-14 minuti, salmone con la pelle verso il basso.', ingredients: [ { name: 'Filetto di salmone', quantity: 150, unit: 'g' }, { name: 'Asparagi', quantity: 200, unit: 'g' }, { name: 'Limone', quantity: 0.5, unit: 'pz' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], variants: [ { name: 'Versione fredda', description: 'Salmone scottato 2 min per lato e servito tiepido su asparagi crudi sottili.', }, { name: 'Sgombro al posto del salmone', description: 'Più economico e ricco di omega-3. Riduci il tempo di cottura a 10 min.', kcalDelta: -10, }, ], }, { name: 'Bistecca con zucchine grigliate', category: 'PRANZO', description: 'Tagliata di manzo con zucchine grigliate e olio EVO.', prepMinutes: 18, difficulty: 'MEDIA', kcal: 580, proteinG: 42, fatG: 38, netCarbG: 5, phases: [1, 2, 3], ingredients: [ { name: 'Tagliata di manzo', quantity: 180, unit: 'g' }, { name: 'Zucchine', quantity: 200, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 2, unit: 'cucchiaio' }, ], variants: [ { name: 'Versione tacchino', description: 'Petto di tacchino spesso al posto della tagliata: più magro, meno grassi saturi.', kcalDelta: -180, }, { name: 'Con melanzane grigliate', description: 'Aggiungi 100 g di melanzane grigliate per più volume e fibra.', kcalDelta: 30, }, ], }, { name: 'Insalatona con tonno e olive', category: 'PRANZO', description: "Insalata mista, tonno sott'olio, olive nere, capperi.", prepMinutes: 10, difficulty: 'FACILE', kcal: 470, proteinG: 32, fatG: 32, netCarbG: 7, phases: [1, 2, 3], ingredients: [ { name: "Tonno sott'olio", quantity: 120, unit: 'g' }, { name: 'Insalata mista', quantity: 100, unit: 'g' }, { name: 'Olive nere', quantity: 30, unit: 'g' }, { name: 'Capperi sotto sale', quantity: 1, unit: 'cucchiaio' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], variants: [ { name: 'Niçoise', description: 'Aggiungi 1 uovo sodo, 4 fagiolini cotti e una manciata di pomodorini.', kcalDelta: 90, }, { name: 'Con sgombro', description: 'Sgombro al naturale al posto del tonno: più ricco di omega-3.', }, ], }, // SPUNTINO { name: 'Mandorle al naturale', category: 'SPUNTINO', description: 'Una manciata di mandorle (~25 g).', prepMinutes: 1, difficulty: 'FACILE', kcal: 150, proteinG: 5, fatG: 13, netCarbG: 3, phases: [1, 2, 3], ingredients: [{ name: 'Mandorle', quantity: 25, unit: 'g' }], }, { name: 'Cubetti di parmigiano', category: 'SPUNTINO', description: '30 g di parmigiano stagionato 24 mesi.', prepMinutes: 1, difficulty: 'FACILE', kcal: 120, proteinG: 11, fatG: 8, netCarbG: 0, phases: [1, 2, 3], ingredients: [{ name: 'Parmigiano Reggiano', quantity: 30, unit: 'g' }], }, { name: 'Olive verdi marinate', category: 'SPUNTINO', description: 'Una porzione di olive verdi (60 g) con erbe aromatiche.', prepMinutes: 1, difficulty: 'FACILE', kcal: 90, proteinG: 1, fatG: 9, netCarbG: 1, phases: [1, 2, 3], ingredients: [ { name: 'Olive verdi', quantity: 60, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 0.5, unit: 'cucchiaio' }, ], }, { name: 'Cetrioli con hummus di zucchine', category: 'SPUNTINO', description: 'Cetrioli a bastoncino con hummus light di zucchine.', prepMinutes: 5, difficulty: 'FACILE', kcal: 110, proteinG: 3, fatG: 8, netCarbG: 5, phases: [2, 3], ingredients: [ { name: 'Cetrioli', quantity: 100, unit: 'g' }, { name: 'Zucchine', quantity: 60, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], }, // CENA { name: 'Branzino al cartoccio con verdure', category: 'CENA', description: 'Branzino al cartoccio con zucchine, carote e pomodorini.', prepMinutes: 25, difficulty: 'MEDIA', kcal: 460, proteinG: 38, fatG: 28, netCarbG: 7, phases: [1, 2, 3], notesChef: 'Cottura 18-20 minuti a 190°C; il cartoccio mantiene il pesce umido.', ingredients: [ { name: 'Branzino', quantity: 1, unit: 'pz' }, { name: 'Zucchine', quantity: 100, unit: 'g' }, { name: 'Carote', quantity: 60, unit: 'g' }, { name: 'Pomodorini ciliegino', quantity: 80, unit: 'g' }, { name: 'Limone', quantity: 0.5, unit: 'pz' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], variants: [ { name: 'Mediterranea', description: 'Aggiungi 6 olive Kalamata, 1 cucchiaino di capperi e una foglia di alloro nel cartoccio.', kcalDelta: 50, }, { name: 'Orata al posto del branzino', description: "Stessa preparazione: l'orata è più dolce e ha carne più morbida.", }, ], }, { name: 'Polpette di pollo e ricotta', category: 'CENA', description: 'Polpette al forno con ricotta, basilico e parmigiano.', prepMinutes: 30, difficulty: 'MEDIA', kcal: 490, proteinG: 40, fatG: 32, netCarbG: 4, phases: [1, 2, 3], ingredients: [ { name: 'Petto di pollo', quantity: 150, unit: 'g' }, { name: 'Ricotta vaccina', quantity: 60, unit: 'g' }, { name: 'Parmigiano Reggiano', quantity: 20, unit: 'g' }, { name: 'Basilico fresco', quantity: 10, unit: 'g' }, { name: 'Uova', quantity: 1, unit: 'pz' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], variants: [ { name: 'In sugo di pomodoro', description: 'Cuoci le polpette nella passata di pomodoro per gli ultimi 10 minuti.', kcalDelta: 40, }, { name: 'Versione tacchino e spinaci', description: 'Tacchino macinato + 50 g di spinaci surgelati strizzati al posto della ricotta.', kcalDelta: -80, }, ], }, { name: 'Zuppa di cavolfiore e gorgonzola', category: 'CENA', description: 'Crema di cavolfiore con gorgonzola dolce DOP.', prepMinutes: 25, difficulty: 'FACILE', kcal: 420, proteinG: 18, fatG: 33, netCarbG: 9, phases: [1, 2, 3], ingredients: [ { name: 'Cavolfiore', quantity: 250, unit: 'g' }, { name: 'Gorgonzola dolce DOP', quantity: 60, unit: 'g' }, { name: 'Burro', quantity: 10, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], }, { name: 'Tagliata di manzo con rucola e grana', category: 'CENA', description: 'Tagliata di manzo su letto di rucola con scaglie di grana.', prepMinutes: 15, difficulty: 'MEDIA', kcal: 540, proteinG: 44, fatG: 36, netCarbG: 3, phases: [1, 2, 3], ingredients: [ { name: 'Tagliata di manzo', quantity: 180, unit: 'g' }, { name: 'Rucola', quantity: 60, unit: 'g' }, { name: 'Grana Padano', quantity: 25, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], variants: [ { name: 'Con pomodorini e aceto balsamico', description: 'Aggiungi 80 g di pomodorini e un filo di aceto balsamico (Fase 2+).', kcalDelta: 25, }, { name: 'Bresaola al posto della tagliata', description: 'Versione più magra: 100 g di bresaola arrotolata sulla rucola.', kcalDelta: -240, }, ], }, // ─── Espansione catalogo ────────────────────────────────────────────── // COLAZIONE { name: 'Pancake proteici alla cannella', category: 'COLAZIONE', description: 'Tre pancake con uova, ricotta e cannella. Senza farina.', prepMinutes: 10, difficulty: 'FACILE', kcal: 350, proteinG: 26, fatG: 22, netCarbG: 5, phases: [1, 2, 3], notesChef: 'Per dolcezza naturale aggiungi qualche frutto di bosco da fase 2.', ingredients: [ { name: 'Uova', quantity: 2, unit: 'pz' }, { name: 'Ricotta vaccina', quantity: 60, unit: 'g' }, { name: 'Cannella in polvere', quantity: 1, unit: 'cucchiaino' }, { name: 'Burro', quantity: 5, unit: 'g' }, ], variants: [ { name: 'Con farina di mandorle', description: 'Aggiungi 20 g di farina di mandorle per pancake più strutturati.', kcalDelta: 120, }, { name: 'Versione vegana', description: 'Sostituisci le uova con 2 cucchiai di semi di chia + 60 ml di acqua riposati 10 min, e la ricotta con yogurt di cocco.', kcalDelta: -80, }, ], }, { name: 'Smoothie verde con avocado e spinaci', category: 'COLAZIONE', description: 'Spinaci, mezzo avocado, yogurt greco e semi di chia frullati.', prepMinutes: 5, difficulty: 'FACILE', kcal: 340, proteinG: 14, fatG: 24, netCarbG: 8, phases: [1, 2, 3], ingredients: [ { name: 'Spinaci freschi', quantity: 50, unit: 'g' }, { name: 'Avocado', quantity: 0.5, unit: 'pz' }, { name: 'Yogurt greco intero', quantity: 100, unit: 'g' }, { name: 'Semi di chia', quantity: 10, unit: 'g' }, ], variants: [ { name: 'Versione vegana', description: 'Yogurt di cocco al posto del greco; aggiungi 1 cucchiaio di proteine in polvere se serve.', kcalDelta: -30, }, { name: 'Con frutti di bosco (Fase 2+)', description: 'Aggiungi 60 g di mirtilli/lamponi: smoothie più gustoso, +12 g carb netti.', kcalDelta: 30, }, ], }, { name: 'Uova alla coque con bresaola', category: 'COLAZIONE', description: 'Due uova alla coque con 30 g di bresaola e olio EVO.', prepMinutes: 8, difficulty: 'FACILE', kcal: 280, proteinG: 28, fatG: 17, netCarbG: 1, phases: [1, 2, 3], ingredients: [ { name: 'Uova', quantity: 2, unit: 'pz' }, { name: 'Bresaola', quantity: 30, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 0.5, unit: 'cucchiaio' }, ], }, { name: 'Yogurt greco con frutti di bosco e semi', category: 'COLAZIONE', description: 'Yogurt greco intero, mirtilli e lamponi, semi di chia.', prepMinutes: 3, difficulty: 'FACILE', kcal: 260, proteinG: 17, fatG: 13, netCarbG: 12, phases: [1, 2, 3], ingredients: [ { name: 'Yogurt greco intero', quantity: 200, unit: 'g' }, { name: 'Frutti di bosco misti', quantity: 50, unit: 'g' }, { name: 'Semi di chia', quantity: 10, unit: 'g' }, ], }, { name: 'Frittatina ai funghi e prezzemolo', category: 'COLAZIONE', description: 'Due uova con champignon trifolati e prezzemolo.', prepMinutes: 12, difficulty: 'FACILE', kcal: 290, proteinG: 22, fatG: 21, netCarbG: 3, phases: [1, 2, 3], ingredients: [ { name: 'Uova', quantity: 2, unit: 'pz' }, { name: 'Funghi champignon', quantity: 80, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], }, { name: 'Avocado con uovo strapazzato', category: 'COLAZIONE', description: 'Mezzo avocado svuotato e farcito con un uovo strapazzato.', prepMinutes: 7, difficulty: 'FACILE', kcal: 320, proteinG: 13, fatG: 26, netCarbG: 4, phases: [1, 2, 3], ingredients: [ { name: 'Avocado', quantity: 0.5, unit: 'pz' }, { name: 'Uova', quantity: 1, unit: 'pz' }, { name: 'Burro', quantity: 5, unit: 'g' }, ], }, { name: 'Mascarpone con noci e cocco', category: 'COLAZIONE', description: 'Mascarpone leggero con noci tritate e cocco rapè.', prepMinutes: 3, difficulty: 'FACILE', kcal: 380, proteinG: 7, fatG: 36, netCarbG: 6, phases: [1, 2, 3], ingredients: [ { name: 'Mascarpone', quantity: 60, unit: 'g' }, { name: 'Noci', quantity: 15, unit: 'g' }, { name: 'Cocco rapè non zuccherato', quantity: 10, unit: 'g' }, ], }, { name: 'Omelette con prosciutto e mozzarella', category: 'COLAZIONE', description: 'Tre uova con prosciutto crudo e mozzarella di bufala.', prepMinutes: 10, difficulty: 'FACILE', kcal: 460, proteinG: 32, fatG: 35, netCarbG: 2, phases: [1, 2, 3], ingredients: [ { name: 'Uova', quantity: 3, unit: 'pz' }, { name: 'Prosciutto crudo', quantity: 30, unit: 'g' }, { name: 'Mozzarella di bufala', quantity: 40, unit: 'g' }, ], }, // PRANZO { name: 'Tacchino con broccoli al vapore', category: 'PRANZO', description: 'Petto di tacchino alla piastra con broccoli e olio EVO.', prepMinutes: 20, difficulty: 'FACILE', kcal: 410, proteinG: 42, fatG: 22, netCarbG: 6, phases: [1, 2, 3], ingredients: [ { name: 'Petto di tacchino', quantity: 150, unit: 'g' }, { name: 'Broccoli', quantity: 200, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' }, ], }, { name: 'Insalata di sgombro e olive', category: 'PRANZO', description: 'Insalata mista, sgombro al naturale, olive nere, capperi.', prepMinutes: 8, difficulty: 'FACILE', kcal: 480, proteinG: 30, fatG: 36, netCarbG: 5, phases: [1, 2, 3], ingredients: [ { name: 'Sgombro', quantity: 130, unit: 'g' }, { name: 'Insalata mista', quantity: 100, unit: 'g' }, { name: 'Olive nere', quantity: 25, unit: 'g' }, { name: 'Capperi sotto sale', quantity: 1, unit: 'cucchiaio' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], }, { name: 'Pollo al limone con asparagi', category: 'PRANZO', description: 'Petto di pollo marinato al limone con asparagi al forno.', prepMinutes: 22, difficulty: 'FACILE', kcal: 470, proteinG: 40, fatG: 28, netCarbG: 6, phases: [1, 2, 3], ingredients: [ { name: 'Petto di pollo', quantity: 150, unit: 'g' }, { name: 'Asparagi', quantity: 180, unit: 'g' }, { name: 'Limone', quantity: 0.5, unit: 'pz' }, { name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' }, ], }, { name: 'Caprese con bufala e pomodorini', category: 'PRANZO', description: 'Mozzarella di bufala con pomodorini, basilico e olio EVO.', prepMinutes: 6, difficulty: 'FACILE', kcal: 500, proteinG: 25, fatG: 40, netCarbG: 6, phases: [1, 2, 3], ingredients: [ { name: 'Mozzarella di bufala', quantity: 125, unit: 'g' }, { name: 'Pomodorini ciliegino', quantity: 150, unit: 'g' }, { name: 'Basilico fresco', quantity: 10, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' }, ], variants: [ { name: 'Con avocado', description: 'Aggiungi mezzo avocado a fette: capresotto più nutriente e saziante.', kcalDelta: 120, }, { name: 'Con prosciutto crudo', description: 'Avvolgi le fette di mozzarella con prosciutto crudo: più proteine.', kcalDelta: 80, }, ], }, { name: 'Insalata di gamberi e avocado', category: 'PRANZO', description: 'Gamberi al vapore, avocado, rucola e limone.', prepMinutes: 15, difficulty: 'FACILE', kcal: 420, proteinG: 28, fatG: 28, netCarbG: 5, phases: [1, 2, 3], ingredients: [ { name: 'Gamberi', quantity: 150, unit: 'g' }, { name: 'Avocado', quantity: 0.5, unit: 'pz' }, { name: 'Rucola', quantity: 60, unit: 'g' }, { name: 'Limone', quantity: 0.5, unit: 'pz' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], }, { name: 'Carpaccio di bresaola con grana', category: 'PRANZO', description: 'Bresaola con scaglie di grana, rucola e limone.', prepMinutes: 5, difficulty: 'FACILE', kcal: 360, proteinG: 38, fatG: 22, netCarbG: 2, phases: [1, 2, 3], ingredients: [ { name: 'Bresaola', quantity: 80, unit: 'g' }, { name: 'Grana Padano', quantity: 25, unit: 'g' }, { name: 'Rucola', quantity: 50, unit: 'g' }, { name: 'Limone', quantity: 0.5, unit: 'pz' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], }, { name: 'Frittata di melanzane', category: 'PRANZO', description: 'Frittata con melanzane grigliate e parmigiano.', prepMinutes: 25, difficulty: 'MEDIA', kcal: 450, proteinG: 26, fatG: 33, netCarbG: 6, phases: [1, 2, 3], ingredients: [ { name: 'Uova', quantity: 3, unit: 'pz' }, { name: 'Melanzane', quantity: 150, unit: 'g' }, { name: 'Parmigiano Reggiano', quantity: 25, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' }, ], }, { name: 'Insalata di lenticchie e tonno', category: 'PRANZO', description: "Lenticchie cotte con tonno sott'olio, pomodorini e prezzemolo.", prepMinutes: 10, difficulty: 'FACILE', kcal: 430, proteinG: 32, fatG: 18, netCarbG: 22, phases: [2, 3], notesChef: 'Disponibile dalla 3ª settimana di Fase 2 (reintroduzione legumi).', ingredients: [ { name: 'Lenticchie cotte', quantity: 130, unit: 'g' }, { name: "Tonno sott'olio", quantity: 100, unit: 'g' }, { name: 'Pomodorini ciliegino', quantity: 80, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], variants: [ { name: 'Con ceci al posto delle lenticchie', description: 'Stessa ricetta con ceci cotti: più cremosa, disponibile dalla settimana 4.', kcalDelta: 50, }, { name: 'Con sgombro fresco', description: 'Sgombro al naturale al posto del tonno: profilo lipidico migliore.', kcalDelta: -20, }, ], }, // SPUNTINO { name: 'Noci e cubetti di parmigiano', category: 'SPUNTINO', description: 'Mix di noci e cubetti di parmigiano stagionato.', prepMinutes: 1, difficulty: 'FACILE', kcal: 200, proteinG: 11, fatG: 15, netCarbG: 2, phases: [1, 2, 3], ingredients: [ { name: 'Noci', quantity: 15, unit: 'g' }, { name: 'Parmigiano Reggiano', quantity: 25, unit: 'g' }, ], }, { name: 'Stracchino con cetrioli', category: 'SPUNTINO', description: 'Stracchino spalmato su bastoncini di cetriolo.', prepMinutes: 3, difficulty: 'FACILE', kcal: 130, proteinG: 7, fatG: 10, netCarbG: 3, phases: [1, 2, 3], ingredients: [ { name: 'Stracchino', quantity: 40, unit: 'g' }, { name: 'Cetrioli', quantity: 100, unit: 'g' }, ], }, { name: 'Frutti di bosco con cocco', category: 'SPUNTINO', description: 'Frutti di bosco freschi cosparsi di cocco rapè.', prepMinutes: 2, difficulty: 'FACILE', kcal: 110, proteinG: 1, fatG: 7, netCarbG: 9, phases: [1, 2, 3], ingredients: [ { name: 'Frutti di bosco misti', quantity: 80, unit: 'g' }, { name: 'Cocco rapè non zuccherato', quantity: 10, unit: 'g' }, ], }, { name: 'Prosciutto crudo e mozzarella', category: 'SPUNTINO', description: 'Fettina di prosciutto crudo arrotolata su mozzarella.', prepMinutes: 1, difficulty: 'FACILE', kcal: 180, proteinG: 14, fatG: 13, netCarbG: 1, phases: [1, 2, 3], ingredients: [ { name: 'Prosciutto crudo', quantity: 30, unit: 'g' }, { name: 'Mozzarella di bufala', quantity: 40, unit: 'g' }, ], }, { name: 'Mela e mandorle', category: 'SPUNTINO', description: 'Mezza mela a spicchi con mandorle al naturale.', prepMinutes: 2, difficulty: 'FACILE', kcal: 160, proteinG: 4, fatG: 10, netCarbG: 13, phases: [2, 3], ingredients: [ { name: 'Mela', quantity: 0.5, unit: 'pz' }, { name: 'Mandorle', quantity: 15, unit: 'g' }, ], }, { name: 'Hummus di ceci con verdure crude', category: 'SPUNTINO', description: 'Crema di ceci con bastoncini di sedano e peperoni.', prepMinutes: 5, difficulty: 'FACILE', kcal: 170, proteinG: 6, fatG: 10, netCarbG: 14, phases: [2, 3], ingredients: [ { name: 'Ceci cotti', quantity: 60, unit: 'g' }, { name: 'Peperoni', quantity: 80, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], }, // CENA { name: 'Sgombro al cartoccio con melanzane', category: 'CENA', description: 'Sgombro intero al cartoccio con melanzane e pomodorini.', prepMinutes: 30, difficulty: 'MEDIA', kcal: 510, proteinG: 32, fatG: 38, netCarbG: 6, phases: [1, 2, 3], notesChef: 'Cottura 20 min a 200°C. Se ti piace lo zenzero, aggiunto crudo è perfetto.', ingredients: [ { name: 'Sgombro', quantity: 200, unit: 'g' }, { name: 'Melanzane', quantity: 150, unit: 'g' }, { name: 'Pomodorini ciliegino', quantity: 80, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' }, ], }, { name: 'Tagliolini di zucchine al pesto', category: 'CENA', description: 'Zucchine spiralizzate con pesto fresco di basilico e pinoli.', prepMinutes: 15, difficulty: 'FACILE', kcal: 380, proteinG: 12, fatG: 32, netCarbG: 8, phases: [1, 2, 3], ingredients: [ { name: 'Zucchine', quantity: 250, unit: 'g' }, { name: 'Basilico fresco', quantity: 20, unit: 'g' }, { name: 'Parmigiano Reggiano', quantity: 20, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 2, unit: 'cucchiaio' }, ], variants: [ { name: 'Con gamberi saltati', description: 'Aggiungi 100 g di gamberi saltati in padella: piatto più completo.', kcalDelta: 100, }, { name: 'Pesto di rucola', description: 'Sostituisci il basilico con rucola: gusto più deciso, stesso profilo macros.', }, ], }, { name: 'Pollo al curry con cavolfiore', category: 'CENA', description: 'Bocconcini di pollo al curry con cavolfiore "riso".', prepMinutes: 25, difficulty: 'MEDIA', kcal: 470, proteinG: 38, fatG: 28, netCarbG: 8, phases: [1, 2, 3], ingredients: [ { name: 'Petto di pollo', quantity: 150, unit: 'g' }, { name: 'Cavolfiore', quantity: 200, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' }, ], }, { name: 'Salmone su crema di broccoli', category: 'CENA', description: 'Filetto di salmone scottato su vellutata di broccoli.', prepMinutes: 25, difficulty: 'MEDIA', kcal: 530, proteinG: 38, fatG: 36, netCarbG: 8, phases: [1, 2, 3], ingredients: [ { name: 'Filetto di salmone', quantity: 150, unit: 'g' }, { name: 'Broccoli', quantity: 200, unit: 'g' }, { name: 'Burro', quantity: 10, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], }, { name: 'Polpettone di tacchino e ricotta', category: 'CENA', description: 'Polpettone con tacchino macinato, ricotta e spinaci.', prepMinutes: 35, difficulty: 'MEDIA', kcal: 480, proteinG: 42, fatG: 30, netCarbG: 4, phases: [1, 2, 3], ingredients: [ { name: 'Petto di tacchino', quantity: 150, unit: 'g' }, { name: 'Ricotta vaccina', quantity: 60, unit: 'g' }, { name: 'Spinaci surgelati', quantity: 80, unit: 'g' }, { name: 'Uova', quantity: 1, unit: 'pz' }, { name: 'Parmigiano Reggiano', quantity: 20, unit: 'g' }, ], }, { name: 'Funghi ripieni di salsiccia (alternativa)', category: 'CENA', description: 'Funghi champignon farciti con tacchino e parmigiano.', prepMinutes: 25, difficulty: 'MEDIA', kcal: 420, proteinG: 32, fatG: 28, netCarbG: 4, phases: [1, 2, 3], ingredients: [ { name: 'Funghi champignon', quantity: 200, unit: 'g' }, { name: 'Petto di tacchino', quantity: 100, unit: 'g' }, { name: 'Parmigiano Reggiano', quantity: 25, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], }, { name: 'Insalata di quinoa con pollo e verdure', category: 'CENA', description: 'Quinoa cotta con pollo, peperoni e zucchine grigliate.', prepMinutes: 25, difficulty: 'FACILE', kcal: 510, proteinG: 38, fatG: 22, netCarbG: 26, phases: [3], notesChef: 'Disponibile in mantenimento (Fase 3) o dalla 7ª settimana di Fase 2.', ingredients: [ { name: 'Quinoa cotta', quantity: 100, unit: 'g' }, { name: 'Petto di pollo', quantity: 130, unit: 'g' }, { name: 'Peperoni', quantity: 100, unit: 'g' }, { name: 'Zucchine', quantity: 100, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' }, ], variants: [ { name: 'Versione vegetariana', description: 'Sostituisci il pollo con 80 g di feta + 1 uovo sodo: più mediterranea.', kcalDelta: -30, }, { name: 'Con gamberi', description: 'Gamberi al posto del pollo: piatto più estivo e leggero.', kcalDelta: -80, }, ], }, { name: 'Branzino in crosta di erbe', category: 'CENA', description: 'Branzino al forno con crosta di basilico, prezzemolo e mandorle.', prepMinutes: 30, difficulty: 'MEDIA', kcal: 460, proteinG: 42, fatG: 28, netCarbG: 5, phases: [1, 2, 3], ingredients: [ { name: 'Branzino', quantity: 1, unit: 'pz' }, { name: 'Basilico fresco', quantity: 15, unit: 'g' }, { name: 'Mandorle', quantity: 20, unit: 'g' }, { name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' }, ], }, ];