Jauges d'hydratation et de calories dans le widget

Deux barres sous le titre : eau bue sur objectif, énergie consommée sur objectif
calorique. La barre des calories vire à l'orange au-dessus de la cible.

La jauge n'apparaît QUE si l'objectif correspondant existe. Aucun objectif
d'hydratation n'est défini dans les objectifs nutritionnels : tant qu'il vaut
nil, le widget affiche le volume bu sans barre. Une jauge sur un objectif
inventé donnerait un pourcentage qui ne veut rien dire — et il aurait l'air
d'un réglage validé.

Les trois champs du snapshot sont optionnels : un instantané écrit par une
version antérieure reste lisible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Sylvain Bettinelli
2026-08-06 13:44:40 +00:00
parent e4d317f781
commit 5eafa14b99
2 changed files with 61 additions and 5 deletions

View File

@@ -53,6 +53,19 @@ struct CoachWidgetSnapshot: Codable {
var waterMlToday: Double?
var coffeeCountToday: Int?
/// Énergie du jour et objectif, poussés par l'app depuis le journal.
/// `kcalGoal` vient des objectifs nutritionnels réels (1950 au 06/08/2026) :
/// il n'est pas écrit en dur ici, pour qu'un changement d'objectif suive.
var kcalToday: Double?
var kcalGoal: Double?
/// Objectif d'hydratation, en millilitres. **Optionnel et sans valeur par
/// défaut** : aucun objectif d'hydratation n'est défini dans les objectifs
/// nutritionnels. Tant qu'il vaut nil, le widget affiche le volume bu sans
/// barre une jauge sur un objectif inventé donnerait un pourcentage qui ne
/// veut rien dire.
var waterGoalMl: Double?
/// Séance planifiée du jour (nil = jour OFF / pas de séance).
struct TodaySession: Codable {
var sport: String // running, cycling, strength, mobility, hiking, rest