GDPR (PRD §14, art. 17 + 20) - GET /me/export.json: dump completo dei dati personali (User, Profile, Preferences, WeightEntry, FastEvent, MealPlan+slots, DailyCheckIn, DeviceToken). I campi @encrypted vengono decifrati a runtime dall'extension Prisma. Risposta con Content-Disposition attachment. - DELETE /me: cancellazione account con cascade automatico. Per gli account email/password richiede conferma password (verifica via auth.api.signInEmail). Account OAuth-only: solo sessione attiva. - Proxy Next /api/gdpr-export per same-origin + cookie sessione. - /profile: nuova sezione "I tuoi dati (GDPR)" in fondo con due azioni (esporta + elimina) e modale di conferma password per la cancellazione. Catalogo ricette 46 → 96 (target 100) - 50 ricette nuove italiane keto/low-carb bilanciate per categoria: 12 colazioni, 14 pranzi, 12 spuntini, 12 cene - Macros realistici, ingredienti dal seed esistente (no nuovi ingredienti necessari) - Run db:seed: ingredients +0 (catalog 55), recipes +49 (catalog 96), recipe-ingredient links: 323 i18n: namespace Profile esteso con dataEyebrow/Title/Subtitle, dataExport*, dataDelete* (incluso typed errors map), working. 81/81 unit test verdi. Lint, typecheck verdi. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1996 lines
60 KiB
TypeScript
1996 lines
60 KiB
TypeScript
// 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<string, string[]> = {
|
||
// 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' },
|
||
],
|
||
},
|
||
// ─── Espansione catalogo · round 2 (target 100) ──────────────────────
|
||
// COLAZIONE — 12 nuove
|
||
{
|
||
name: 'Bowl di yogurt e mandorle tostate',
|
||
category: 'COLAZIONE',
|
||
description: 'Yogurt greco con mandorle tostate in padella e cocco rapè.',
|
||
prepMinutes: 5,
|
||
difficulty: 'FACILE',
|
||
kcal: 360,
|
||
proteinG: 19,
|
||
fatG: 26,
|
||
netCarbG: 9,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Yogurt greco intero', quantity: 200, unit: 'g' },
|
||
{ name: 'Mandorle', quantity: 25, unit: 'g' },
|
||
{ name: 'Cocco rapè non zuccherato', quantity: 10, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Uova al tegamino con pomodorini',
|
||
category: 'COLAZIONE',
|
||
description: 'Due uova al tegamino con pomodorini saltati e basilico.',
|
||
prepMinutes: 7,
|
||
difficulty: 'FACILE',
|
||
kcal: 290,
|
||
proteinG: 17,
|
||
fatG: 22,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Uova', quantity: 2, unit: 'pz' },
|
||
{ name: 'Pomodorini ciliegino', quantity: 80, unit: 'g' },
|
||
{ name: 'Basilico fresco', quantity: 5, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Frittata di asparagi e parmigiano',
|
||
category: 'COLAZIONE',
|
||
description: 'Frittata morbida con asparagi al vapore e parmigiano.',
|
||
prepMinutes: 12,
|
||
difficulty: 'FACILE',
|
||
kcal: 340,
|
||
proteinG: 25,
|
||
fatG: 24,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Uova', quantity: 3, unit: 'pz' },
|
||
{ name: 'Asparagi', quantity: 80, unit: 'g' },
|
||
{ name: 'Parmigiano Reggiano', quantity: 20, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Skyr con cannella e noci',
|
||
category: 'COLAZIONE',
|
||
description: 'Yogurt greco compatto con noci tritate e cannella.',
|
||
prepMinutes: 3,
|
||
difficulty: 'FACILE',
|
||
kcal: 270,
|
||
proteinG: 20,
|
||
fatG: 16,
|
||
netCarbG: 7,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Yogurt greco intero', quantity: 200, unit: 'g' },
|
||
{ name: 'Noci', quantity: 15, unit: 'g' },
|
||
{ name: 'Cannella in polvere', quantity: 1, unit: 'cucchiaino' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Toast di pane di mandorle e burro',
|
||
category: 'COLAZIONE',
|
||
description: 'Pane proteico tostato con burro e una grattugiata di sale.',
|
||
prepMinutes: 4,
|
||
difficulty: 'FACILE',
|
||
kcal: 320,
|
||
proteinG: 10,
|
||
fatG: 25,
|
||
netCarbG: 8,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Pane proteico di mandorle', quantity: 60, unit: 'g' },
|
||
{ name: 'Burro', quantity: 15, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Uova in camicia su rucola',
|
||
category: 'COLAZIONE',
|
||
description: "Due uova in camicia su un letto di rucola con un filo d'olio.",
|
||
prepMinutes: 10,
|
||
difficulty: 'MEDIA',
|
||
kcal: 260,
|
||
proteinG: 14,
|
||
fatG: 20,
|
||
netCarbG: 2,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Uova', quantity: 2, unit: 'pz' },
|
||
{ name: 'Rucola', quantity: 50, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Crema di ricotta e cocco',
|
||
category: 'COLAZIONE',
|
||
description: 'Ricotta montata con cocco rapè e una spolverata di cannella.',
|
||
prepMinutes: 3,
|
||
difficulty: 'FACILE',
|
||
kcal: 330,
|
||
proteinG: 16,
|
||
fatG: 25,
|
||
netCarbG: 6,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Ricotta vaccina', quantity: 150, unit: 'g' },
|
||
{ name: 'Cocco rapè non zuccherato', quantity: 15, unit: 'g' },
|
||
{ name: 'Cannella in polvere', quantity: 1, unit: 'cucchiaino' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Uova strapazzate con spinaci',
|
||
category: 'COLAZIONE',
|
||
description: 'Uova al burro con spinaci freschi saltati.',
|
||
prepMinutes: 8,
|
||
difficulty: 'FACILE',
|
||
kcal: 320,
|
||
proteinG: 20,
|
||
fatG: 24,
|
||
netCarbG: 3,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Uova', quantity: 2, unit: 'pz' },
|
||
{ name: 'Spinaci freschi', quantity: 80, unit: 'g' },
|
||
{ name: 'Burro', quantity: 10, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Smoothie di mascarpone e noci',
|
||
category: 'COLAZIONE',
|
||
description: 'Frullato denso di mascarpone, yogurt e noci tritate.',
|
||
prepMinutes: 5,
|
||
difficulty: 'FACILE',
|
||
kcal: 410,
|
||
proteinG: 12,
|
||
fatG: 36,
|
||
netCarbG: 6,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Mascarpone', quantity: 50, unit: 'g' },
|
||
{ name: 'Yogurt greco intero', quantity: 100, unit: 'g' },
|
||
{ name: 'Noci', quantity: 15, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Frittata di funghi e prezzemolo',
|
||
category: 'COLAZIONE',
|
||
description: 'Frittata con champignon trifolati al prezzemolo.',
|
||
prepMinutes: 12,
|
||
difficulty: 'FACILE',
|
||
kcal: 310,
|
||
proteinG: 22,
|
||
fatG: 22,
|
||
netCarbG: 3,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Uova', quantity: 3, unit: 'pz' },
|
||
{ name: 'Funghi champignon', quantity: 100, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Bocconcini di bufala e prosciutto',
|
||
category: 'COLAZIONE',
|
||
description: 'Mozzarella di bufala con prosciutto crudo arrotolato.',
|
||
prepMinutes: 3,
|
||
difficulty: 'FACILE',
|
||
kcal: 380,
|
||
proteinG: 26,
|
||
fatG: 28,
|
||
netCarbG: 1,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Mozzarella di bufala', quantity: 80, unit: 'g' },
|
||
{ name: 'Prosciutto crudo', quantity: 30, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Yogurt e semi di chia',
|
||
category: 'COLAZIONE',
|
||
description: 'Yogurt greco con semi di chia ammollati e cannella.',
|
||
prepMinutes: 3,
|
||
difficulty: 'FACILE',
|
||
kcal: 280,
|
||
proteinG: 17,
|
||
fatG: 16,
|
||
netCarbG: 6,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Yogurt greco intero', quantity: 200, unit: 'g' },
|
||
{ name: 'Semi di chia', quantity: 15, unit: 'g' },
|
||
{ name: 'Cannella in polvere', quantity: 1, unit: 'cucchiaino' },
|
||
],
|
||
},
|
||
// PRANZO — 14 nuove
|
||
{
|
||
name: 'Tonno scottato con rucola e capperi',
|
||
category: 'PRANZO',
|
||
description: 'Trancio di tonno scottato in padella con rucola e capperi.',
|
||
prepMinutes: 12,
|
||
difficulty: 'MEDIA',
|
||
kcal: 470,
|
||
proteinG: 38,
|
||
fatG: 32,
|
||
netCarbG: 3,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: "Tonno sott'olio", quantity: 130, unit: 'g' },
|
||
{ name: 'Rucola', quantity: 60, unit: 'g' },
|
||
{ name: 'Capperi sotto sale', quantity: 1, unit: 'cucchiaio' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 2, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Pollo arrosto con zucchine al forno',
|
||
category: 'PRANZO',
|
||
description: 'Cosce di pollo al forno con zucchine grigliate e limone.',
|
||
prepMinutes: 35,
|
||
difficulty: 'FACILE',
|
||
kcal: 510,
|
||
proteinG: 40,
|
||
fatG: 32,
|
||
netCarbG: 5,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di pollo', quantity: 180, unit: 'g' },
|
||
{ name: 'Zucchine', quantity: 200, unit: 'g' },
|
||
{ name: 'Limone', quantity: 0.5, unit: 'pz' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: "Insalata greca all'italiana",
|
||
category: 'PRANZO',
|
||
description: 'Pomodorini, cetrioli, mozzarella di bufala, olive nere.',
|
||
prepMinutes: 8,
|
||
difficulty: 'FACILE',
|
||
kcal: 460,
|
||
proteinG: 22,
|
||
fatG: 36,
|
||
netCarbG: 7,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Mozzarella di bufala', quantity: 100, unit: 'g' },
|
||
{ name: 'Pomodorini ciliegino', quantity: 120, unit: 'g' },
|
||
{ name: 'Cetrioli', quantity: 80, unit: 'g' },
|
||
{ name: 'Olive nere', quantity: 30, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Vitello tonnato light',
|
||
category: 'PRANZO',
|
||
description: 'Fettine di tacchino con salsa di tonno e capperi.',
|
||
prepMinutes: 15,
|
||
difficulty: 'MEDIA',
|
||
kcal: 440,
|
||
proteinG: 42,
|
||
fatG: 26,
|
||
netCarbG: 3,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di tacchino', quantity: 150, unit: 'g' },
|
||
{ name: "Tonno sott'olio", quantity: 60, unit: 'g' },
|
||
{ name: 'Capperi sotto sale', quantity: 1, unit: 'cucchiaio' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Insalata di gamberi e avocado',
|
||
category: 'PRANZO',
|
||
description: 'Gamberi cotti con avocado, rucola, olio EVO e limone.',
|
||
prepMinutes: 12,
|
||
difficulty: 'FACILE',
|
||
kcal: 430,
|
||
proteinG: 28,
|
||
fatG: 30,
|
||
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.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Pollo in padella con peperoni',
|
||
category: 'PRANZO',
|
||
description: 'Petto di pollo a tocchetti con peperoni saltati.',
|
||
prepMinutes: 20,
|
||
difficulty: 'FACILE',
|
||
kcal: 460,
|
||
proteinG: 38,
|
||
fatG: 28,
|
||
netCarbG: 7,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di pollo', quantity: 150, unit: 'g' },
|
||
{ name: 'Peperoni', quantity: 200, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Sgombro grigliato con insalata',
|
||
category: 'PRANZO',
|
||
description: 'Sgombro alla griglia con insalata mista e limone.',
|
||
prepMinutes: 15,
|
||
difficulty: 'FACILE',
|
||
kcal: 480,
|
||
proteinG: 32,
|
||
fatG: 36,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Sgombro', quantity: 150, unit: 'g' },
|
||
{ name: 'Insalata mista', quantity: 80, unit: 'g' },
|
||
{ name: 'Limone', quantity: 0.5, unit: 'pz' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Fettine di tacchino al limone',
|
||
category: 'PRANZO',
|
||
description: 'Tacchino in padella con limone, prezzemolo e burro.',
|
||
prepMinutes: 12,
|
||
difficulty: 'FACILE',
|
||
kcal: 410,
|
||
proteinG: 38,
|
||
fatG: 26,
|
||
netCarbG: 2,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di tacchino', quantity: 150, unit: 'g' },
|
||
{ name: 'Limone', quantity: 0.5, unit: 'pz' },
|
||
{ name: 'Burro', quantity: 15, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 0.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Insalata di pollo, sedano e noci',
|
||
category: 'PRANZO',
|
||
description: 'Petto di pollo lessato con sedano croccante e noci.',
|
||
prepMinutes: 15,
|
||
difficulty: 'FACILE',
|
||
kcal: 480,
|
||
proteinG: 36,
|
||
fatG: 32,
|
||
netCarbG: 5,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di pollo', quantity: 150, unit: 'g' },
|
||
{ name: 'Cetrioli', quantity: 60, unit: 'g' },
|
||
{ name: 'Noci', quantity: 20, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Bresaola con caprino e rucola',
|
||
category: 'PRANZO',
|
||
description: 'Bresaola arrotolata su caprino spalmabile con rucola.',
|
||
prepMinutes: 5,
|
||
difficulty: 'FACILE',
|
||
kcal: 380,
|
||
proteinG: 38,
|
||
fatG: 24,
|
||
netCarbG: 2,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Bresaola', quantity: 80, unit: 'g' },
|
||
{ name: 'Stracchino', quantity: 60, unit: 'g' },
|
||
{ name: 'Rucola', quantity: 50, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 0.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Salmone affumicato con avocado',
|
||
category: 'PRANZO',
|
||
description: 'Salmone affumicato con avocado e limone.',
|
||
prepMinutes: 5,
|
||
difficulty: 'FACILE',
|
||
kcal: 470,
|
||
proteinG: 28,
|
||
fatG: 36,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Filetto di salmone', quantity: 120, unit: 'g' },
|
||
{ name: 'Avocado', quantity: 0.75, unit: 'pz' },
|
||
{ name: 'Limone', quantity: 0.5, unit: 'pz' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Insalata caprese rinforzata',
|
||
category: 'PRANZO',
|
||
description: 'Caprese con uova sode e olive nere.',
|
||
prepMinutes: 10,
|
||
difficulty: 'FACILE',
|
||
kcal: 510,
|
||
proteinG: 28,
|
||
fatG: 40,
|
||
netCarbG: 6,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Mozzarella di bufala', quantity: 100, unit: 'g' },
|
||
{ name: 'Pomodorini ciliegino', quantity: 100, unit: 'g' },
|
||
{ name: 'Uova', quantity: 1, unit: 'pz' },
|
||
{ name: 'Olive nere', quantity: 25, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Tagliata di pollo con peperoni',
|
||
category: 'PRANZO',
|
||
description: 'Pollo a fettine con peperoni grigliati e olio EVO.',
|
||
prepMinutes: 18,
|
||
difficulty: 'FACILE',
|
||
kcal: 470,
|
||
proteinG: 40,
|
||
fatG: 28,
|
||
netCarbG: 6,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di pollo', quantity: 150, unit: 'g' },
|
||
{ name: 'Peperoni', quantity: 150, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Salmone con cetrioli e dill',
|
||
category: 'PRANZO',
|
||
description: 'Salmone scottato con insalata di cetrioli e basilico.',
|
||
prepMinutes: 15,
|
||
difficulty: 'FACILE',
|
||
kcal: 490,
|
||
proteinG: 34,
|
||
fatG: 34,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Filetto di salmone', quantity: 150, unit: 'g' },
|
||
{ name: 'Cetrioli', quantity: 100, unit: 'g' },
|
||
{ name: 'Basilico fresco', quantity: 5, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
// SPUNTINO — 12 nuove
|
||
{
|
||
name: 'Mandorle e parmigiano',
|
||
category: 'SPUNTINO',
|
||
description: 'Mix proteico di mandorle e cubetti di parmigiano.',
|
||
prepMinutes: 1,
|
||
difficulty: 'FACILE',
|
||
kcal: 200,
|
||
proteinG: 12,
|
||
fatG: 16,
|
||
netCarbG: 2,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Mandorle', quantity: 20, unit: 'g' },
|
||
{ name: 'Parmigiano Reggiano', quantity: 25, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Bresaola arrotolata',
|
||
category: 'SPUNTINO',
|
||
description: 'Fettine di bresaola con un filo di olio EVO e limone.',
|
||
prepMinutes: 2,
|
||
difficulty: 'FACILE',
|
||
kcal: 110,
|
||
proteinG: 18,
|
||
fatG: 4,
|
||
netCarbG: 0,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Bresaola', quantity: 50, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 0.5, unit: 'cucchiaio' },
|
||
{ name: 'Limone', quantity: 0.25, unit: 'pz' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Yogurt con cocco',
|
||
category: 'SPUNTINO',
|
||
description: 'Mini bowl di yogurt con cocco rapè.',
|
||
prepMinutes: 2,
|
||
difficulty: 'FACILE',
|
||
kcal: 160,
|
||
proteinG: 10,
|
||
fatG: 11,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Yogurt greco intero', quantity: 120, unit: 'g' },
|
||
{ name: 'Cocco rapè non zuccherato', quantity: 8, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Cubetti di parmigiano e olive',
|
||
category: 'SPUNTINO',
|
||
description: 'Parmigiano stagionato con olive verdi.',
|
||
prepMinutes: 1,
|
||
difficulty: 'FACILE',
|
||
kcal: 170,
|
||
proteinG: 11,
|
||
fatG: 13,
|
||
netCarbG: 1,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Parmigiano Reggiano', quantity: 30, unit: 'g' },
|
||
{ name: 'Olive verdi', quantity: 30, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Avocado con sale e limone',
|
||
category: 'SPUNTINO',
|
||
description: "Mezzo avocado con un filo d'olio e limone.",
|
||
prepMinutes: 2,
|
||
difficulty: 'FACILE',
|
||
kcal: 180,
|
||
proteinG: 2,
|
||
fatG: 17,
|
||
netCarbG: 2,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Avocado', quantity: 0.5, unit: 'pz' },
|
||
{ name: 'Limone', quantity: 0.25, unit: 'pz' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 0.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Uovo sodo',
|
||
category: 'SPUNTINO',
|
||
description: 'Un uovo sodo con un pizzico di sale.',
|
||
prepMinutes: 10,
|
||
difficulty: 'FACILE',
|
||
kcal: 80,
|
||
proteinG: 7,
|
||
fatG: 6,
|
||
netCarbG: 0,
|
||
phases: [1, 2, 3],
|
||
ingredients: [{ name: 'Uova', quantity: 1, unit: 'pz' }],
|
||
},
|
||
{
|
||
name: 'Pomodorini con bufala',
|
||
category: 'SPUNTINO',
|
||
description: 'Pomodorini freschi e bocconcini di bufala.',
|
||
prepMinutes: 3,
|
||
difficulty: 'FACILE',
|
||
kcal: 180,
|
||
proteinG: 11,
|
||
fatG: 14,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Mozzarella di bufala', quantity: 60, unit: 'g' },
|
||
{ name: 'Pomodorini ciliegino', quantity: 80, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Noci e mandorle miste',
|
||
category: 'SPUNTINO',
|
||
description: 'Manciata mista di noci e mandorle.',
|
||
prepMinutes: 1,
|
||
difficulty: 'FACILE',
|
||
kcal: 200,
|
||
proteinG: 6,
|
||
fatG: 18,
|
||
netCarbG: 3,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Noci', quantity: 15, unit: 'g' },
|
||
{ name: 'Mandorle', quantity: 15, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Stracchino con olive',
|
||
category: 'SPUNTINO',
|
||
description: 'Stracchino spalmato su sedano con olive nere.',
|
||
prepMinutes: 3,
|
||
difficulty: 'FACILE',
|
||
kcal: 180,
|
||
proteinG: 8,
|
||
fatG: 14,
|
||
netCarbG: 2,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Stracchino', quantity: 50, unit: 'g' },
|
||
{ name: 'Olive nere', quantity: 25, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Frutti di bosco con yogurt',
|
||
category: 'SPUNTINO',
|
||
description: 'Mirtilli e lamponi con yogurt greco.',
|
||
prepMinutes: 2,
|
||
difficulty: 'FACILE',
|
||
kcal: 130,
|
||
proteinG: 8,
|
||
fatG: 6,
|
||
netCarbG: 9,
|
||
phases: [2, 3],
|
||
ingredients: [
|
||
{ name: 'Frutti di bosco misti', quantity: 60, unit: 'g' },
|
||
{ name: 'Yogurt greco intero', quantity: 80, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Cetrioli con tonno',
|
||
category: 'SPUNTINO',
|
||
description: 'Bastoncini di cetriolo con tonno schiacciato.',
|
||
prepMinutes: 3,
|
||
difficulty: 'FACILE',
|
||
kcal: 130,
|
||
proteinG: 16,
|
||
fatG: 7,
|
||
netCarbG: 2,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Cetrioli', quantity: 100, unit: 'g' },
|
||
{ name: "Tonno sott'olio", quantity: 60, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Prosciutto e melone keto',
|
||
category: 'SPUNTINO',
|
||
description: 'Prosciutto crudo arrotolato su pomodorini (versione keto).',
|
||
prepMinutes: 3,
|
||
difficulty: 'FACILE',
|
||
kcal: 160,
|
||
proteinG: 12,
|
||
fatG: 11,
|
||
netCarbG: 2,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Prosciutto crudo', quantity: 40, unit: 'g' },
|
||
{ name: 'Pomodorini ciliegino', quantity: 60, unit: 'g' },
|
||
],
|
||
},
|
||
// CENA — 12 nuove
|
||
{
|
||
name: 'Pollo al limone e capperi',
|
||
category: 'CENA',
|
||
description: 'Pollo in padella con limone, capperi e prezzemolo.',
|
||
prepMinutes: 20,
|
||
difficulty: 'FACILE',
|
||
kcal: 470,
|
||
proteinG: 38,
|
||
fatG: 30,
|
||
netCarbG: 3,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di pollo', quantity: 150, unit: 'g' },
|
||
{ name: 'Limone', quantity: 0.5, unit: 'pz' },
|
||
{ name: 'Capperi sotto sale', quantity: 1, unit: 'cucchiaio' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Salmone con asparagi al burro',
|
||
category: 'CENA',
|
||
description: 'Salmone in padella con asparagi saltati al burro.',
|
||
prepMinutes: 18,
|
||
difficulty: 'FACILE',
|
||
kcal: 530,
|
||
proteinG: 36,
|
||
fatG: 38,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Filetto di salmone', quantity: 150, unit: 'g' },
|
||
{ name: 'Asparagi', quantity: 200, unit: 'g' },
|
||
{ name: 'Burro', quantity: 15, unit: 'g' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Tacchino al rosmarino con verdure',
|
||
category: 'CENA',
|
||
description: 'Petto di tacchino con erbe aromatiche e zucchine.',
|
||
prepMinutes: 25,
|
||
difficulty: 'FACILE',
|
||
kcal: 440,
|
||
proteinG: 42,
|
||
fatG: 26,
|
||
netCarbG: 5,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di tacchino', quantity: 180, unit: 'g' },
|
||
{ name: 'Zucchine', quantity: 200, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Branzino al sale con limone',
|
||
category: 'CENA',
|
||
description: 'Branzino intero al sale con limone e olio EVO.',
|
||
prepMinutes: 35,
|
||
difficulty: 'MEDIA',
|
||
kcal: 410,
|
||
proteinG: 40,
|
||
fatG: 26,
|
||
netCarbG: 1,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Branzino', quantity: 1, unit: 'pz' },
|
||
{ name: 'Limone', quantity: 0.5, unit: 'pz' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Polpettone di pollo e ricotta',
|
||
category: 'CENA',
|
||
description: 'Polpettone al forno con macinato di pollo e ricotta.',
|
||
prepMinutes: 45,
|
||
difficulty: 'MEDIA',
|
||
kcal: 510,
|
||
proteinG: 44,
|
||
fatG: 32,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di pollo', quantity: 180, unit: 'g' },
|
||
{ name: 'Ricotta vaccina', quantity: 80, unit: 'g' },
|
||
{ name: 'Parmigiano Reggiano', quantity: 25, unit: 'g' },
|
||
{ name: 'Uova', quantity: 1, unit: 'pz' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Sgombro al cartoccio',
|
||
category: 'CENA',
|
||
description: 'Sgombro al cartoccio con pomodorini e basilico.',
|
||
prepMinutes: 25,
|
||
difficulty: 'MEDIA',
|
||
kcal: 480,
|
||
proteinG: 36,
|
||
fatG: 34,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Sgombro', quantity: 180, unit: 'g' },
|
||
{ name: 'Pomodorini ciliegino', quantity: 100, unit: 'g' },
|
||
{ name: 'Basilico fresco', quantity: 10, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Insalata di pollo tiepida',
|
||
category: 'CENA',
|
||
description: 'Pollo grigliato su rucola con scaglie di parmigiano.',
|
||
prepMinutes: 18,
|
||
difficulty: 'FACILE',
|
||
kcal: 470,
|
||
proteinG: 42,
|
||
fatG: 30,
|
||
netCarbG: 3,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di pollo', quantity: 150, unit: 'g' },
|
||
{ name: 'Rucola', quantity: 80, unit: 'g' },
|
||
{ name: 'Parmigiano Reggiano', quantity: 25, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Tagliata con funghi',
|
||
category: 'CENA',
|
||
description: 'Tagliata di manzo con funghi trifolati al prezzemolo.',
|
||
prepMinutes: 20,
|
||
difficulty: 'MEDIA',
|
||
kcal: 560,
|
||
proteinG: 42,
|
||
fatG: 40,
|
||
netCarbG: 4,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Tagliata di manzo', quantity: 180, unit: 'g' },
|
||
{ name: 'Funghi champignon', quantity: 150, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Frittata di zucchine',
|
||
category: 'CENA',
|
||
description: 'Frittata con zucchine grigliate e parmigiano.',
|
||
prepMinutes: 18,
|
||
difficulty: 'FACILE',
|
||
kcal: 410,
|
||
proteinG: 28,
|
||
fatG: 30,
|
||
netCarbG: 5,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Uova', quantity: 3, unit: 'pz' },
|
||
{ name: 'Zucchine', quantity: 150, unit: 'g' },
|
||
{ name: 'Parmigiano Reggiano', quantity: 25, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Pollo con broccoli al limone',
|
||
category: 'CENA',
|
||
description: 'Pollo a tocchetti con broccoli e limone.',
|
||
prepMinutes: 22,
|
||
difficulty: 'FACILE',
|
||
kcal: 460,
|
||
proteinG: 40,
|
||
fatG: 28,
|
||
netCarbG: 7,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di pollo', quantity: 150, unit: 'g' },
|
||
{ name: 'Broccoli', quantity: 200, unit: 'g' },
|
||
{ name: 'Limone', quantity: 0.5, unit: 'pz' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Tagliata di tacchino con melanzane',
|
||
category: 'CENA',
|
||
description: 'Petto di tacchino spesso con melanzane grigliate.',
|
||
prepMinutes: 22,
|
||
difficulty: 'MEDIA',
|
||
kcal: 460,
|
||
proteinG: 42,
|
||
fatG: 28,
|
||
netCarbG: 5,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Petto di tacchino', quantity: 180, unit: 'g' },
|
||
{ name: 'Melanzane', quantity: 150, unit: 'g' },
|
||
{ name: 'Olio extravergine di oliva', quantity: 1.5, unit: 'cucchiaio' },
|
||
],
|
||
},
|
||
{
|
||
name: 'Cavolfiore gratinato con prosciutto',
|
||
category: 'CENA',
|
||
description: 'Cavolfiore al forno con prosciutto crudo e parmigiano.',
|
||
prepMinutes: 30,
|
||
difficulty: 'MEDIA',
|
||
kcal: 470,
|
||
proteinG: 26,
|
||
fatG: 36,
|
||
netCarbG: 6,
|
||
phases: [1, 2, 3],
|
||
ingredients: [
|
||
{ name: 'Cavolfiore', quantity: 250, unit: 'g' },
|
||
{ name: 'Prosciutto crudo', quantity: 50, unit: 'g' },
|
||
{ name: 'Parmigiano Reggiano', quantity: 30, unit: 'g' },
|
||
{ name: 'Burro', quantity: 10, unit: 'g' },
|
||
],
|
||
},
|
||
];
|