Files
lucianoandClaude Opus 4.7 60a3d072f6 feat: GDPR (export+delete) + catalogo ricette 46→96
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>
2026-04-30 00:24:53 +02:00

1996 lines
60 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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' },
],
},
];