Widget Boissons : jauge d'hydratation + ouverture sur /hydratation
Le widget affichait un total sans jauge, et c'était une décision documentée et juste : « aucun objectif de boisson n'est fixé, et en inventer un donnerait un pourcentage qui n'a pas de sens ». Une cible existe maintenant côté serveur (`/api/drinks` renvoie `water_target_ml`), donc la jauge peut apparaître — sans cible, on retombe exactement sur l'ancien comportement. ⚠️ Cette cible n'a **aucune source** : c'est un objectif personnel, pas une recommandation médicale. D'où le libellé « objectif » et non « besoin » ou « recommandé ». ⚠️ Les deux côtés du pont bougent ensemble : `widget-bridge.js` pose `waterGoalMl`, `CoachWidgetBridge` la lit sous le même nom. Le widget « JOUR OFF » a menti pendant des jours parce que le pont lisait une clé absente de la réponse serveur. Ajoute aussi un `widgetURL` vers /hydratation : un tap hors bouton ouvrait l'app sur sa dernière page consultée, au hasard. ⚠️ **NON COMPILÉ** — pas de Mac ici. À vérifier au prochain build Xcode, avec les zones cardiaques Watch et `getSnapshot` déjà en attente. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -53,6 +53,16 @@ struct CoachWidgetSnapshot: Codable {
|
||||
var waterMlToday: Double? = nil
|
||||
var coffeeCountToday: Int? = nil
|
||||
|
||||
/// Objectif d'hydratation du jour, servi par `/api/drinks` depuis la refonte
|
||||
/// de la page /hydratation (2026-08-13).
|
||||
///
|
||||
/// ⚠️ **Cette cible n'a aucune source** : c'est un objectif personnel, pas
|
||||
/// une recommandation médicale (voir `nutrition_goals.HYDRATION_DEFAULT_ML`
|
||||
/// côté serveur). Le widget peut donc l'afficher comme une jauge, jamais
|
||||
/// comme un seuil de santé. `nil` ⇒ jauge masquée, total seul — c'était le
|
||||
/// comportement d'origine et il reste le repli.
|
||||
var waterGoalMl: Double? = nil
|
||||
|
||||
/// É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.
|
||||
|
||||
Reference in New Issue
Block a user