feat: storia diete, schedule allenamento, frequenza pasti (PRD §5.1)
Tre leve aggiuntive che migliorano la personalizzazione del piano dopo
le tre del commit precedente (BF%, deficit, condizioni mediche).
1. Storia delle diete precedenti (adattamento metabolico)
- Profile.dietHistory ∈ {NONE,SOME,EXTENSIVE,SEVERE} cifrato at-rest
- bmrAdjustForDietHistory: 0.97 / 0.93 / 0.85 — aggiustamento BMR per
riflettere l'adattamento metabolico osservato in studi a lungo termine
(Fothergill 2016 Biggest Loser, Rosenbaum 2008)
- Select in ProfileForm con copy diretto sulla "questione yo-yo"
2. Schedule allenamento (kcal extra training-day)
- Preferences.trainingDays Int[] (0=Lun..6=Dom)
- Preferences.trainingType ∈ {CARDIO,STRENGTH,MIXED,SPORT}
- Preferences.sessionMinutes Int?
- extraKcalForSession: equazione MET (Ainsworth 2011) con MET prevalenti
8/5/6/7 a tipo. Output arrotondato a 25 kcal per evitare false-precisioni
- Plan generation aggiunge l'extra solo nei training days
- Chips Lun-Dom + select tipo + input durata in PreferencesForm
3. Frequenza pasti preferita
- Preferences.mealsPerDay Int? (1..4)
- mealShareForFrequency: 1=solo cena, 2=pranzo+cena, 3=no spuntino, 4=default
- Quando mealsPerDay è impostato e non c'è fastingProtocol attivo,
sostituisce la share del protocollo (il digiuno IF ha precedenza)
- Slot a share=0 saltati alla creazione (niente colazione/spuntino "vuoti")
Schema migration 20260429220XXX_add_lifestyle_fields.
Smoke verificato via API: con mealsPerDay=3 e nessun protocollo IF, ogni
giorno del piano ha esattamente 3 pasti (Colazione+Pranzo+Cena, niente
Spuntino). 54/54 unit test verdi (11 nuovi).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
9401497f03
commit
a583434c42
20 files changed
+460
-31
No files matched your search
@@ -308,6 +308,26 @@
|
||||
"TWENTY_FOUR": "20:4 — avanzato",
|
||||
"ESE_24": "ESE 24h",
|
||||
"FIVE_TWO": "5:2"
|
||||
},
|
||||
"trainingTitle": "Schedule allenamento",
|
||||
"trainingHint": "Indica i giorni in cui ti alleni di solito: nei training day il piano alza il fabbisogno calorico.",
|
||||
"trainingType": "Tipo di allenamento",
|
||||
"trainingNone": "Nessuno per ora",
|
||||
"trainingTypeLabel": {
|
||||
"CARDIO": "Cardio (corsa, bici)",
|
||||
"STRENGTH": "Forza (pesi)",
|
||||
"MIXED": "Misto / HIIT",
|
||||
"SPORT": "Sport di squadra"
|
||||
},
|
||||
"sessionMinutes": "Durata media (min)",
|
||||
"mealsPerDayTitle": "Frequenza pasti",
|
||||
"mealsPerDayHint": "Quanti pasti preferisci fare al giorno? Se hai un protocollo IF attivo, ha la precedenza lui.",
|
||||
"mealsAuto": "Automatico (4 pasti)",
|
||||
"mealsLabel": {
|
||||
"1": "1 pasto al giorno",
|
||||
"2": "2 pasti (pranzo + cena)",
|
||||
"3": "3 pasti (no spuntino)",
|
||||
"4": "4 pasti (con spuntino)"
|
||||
}
|
||||
},
|
||||
"Notifications": {
|
||||
@@ -459,6 +479,14 @@
|
||||
"hipsCm": "Fianchi",
|
||||
"targetWeeklyLossKg": "Velocità di calo (kg/settimana)",
|
||||
"targetWeeklyLossKgHint": "Suggerito: 0.4–0.7 kg/settimana. Oltre 1% del peso corporeo è considerato troppo aggressivo.",
|
||||
"dietHistory": "Storia delle diete precedenti",
|
||||
"dietHistoryHint": "Diete restrittive ripetute (yo-yo) abbassano il metabolismo basale del 5-15%. Indicarcelo ci serve a calibrare il deficit con prudenza.",
|
||||
"dietHistoryLabel": {
|
||||
"NONE": "Mai fatto diete restrittive",
|
||||
"SOME": "1-2 diete negli ultimi 3 anni",
|
||||
"EXTENSIVE": "Più diete o effetto yo-yo",
|
||||
"SEVERE": "Periodi di semi-fame o disturbi alim. in remissione"
|
||||
},
|
||||
"selectPlaceholder": "Seleziona…",
|
||||
"save": "Salva profilo",
|
||||
"saving": "Salvataggio…",
|
||||
|
||||
Reference in new issue
Block a user