--- issueRef: "#179" version: 7 updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} updatedAt: 1785408937070 --- ## Clarifications utilisateur — 30 juillet 2026 ### Portée fonctionnelle V1 - Les graphes de statistiques sont **téléphone uniquement**. - Ils sont consultables **après la séance** et **dans l'historique**. - La navigation entre `étape`, `série`, `exercice`, `séance` se fera a priori via **un sélecteur de scope** ; UX devra confirmer la meilleure forme pour que cela tienne correctement sur un téléphone. ### Statistiques V1 - V1 limitée à : - `FC` - `distance` - `calories` - Le système doit rester **hexagonal** et conçu pour permettre l'ajout simple d'autres métriques plus tard, sans recadrage structurel. ### Règles d'affichage des graphes - `FC` : affichage normal + lignes horizontales `min` / `max` quand pertinent. - `distance` et `calories` : même logique générale de graphe, **sans** lignes horizontales `min` / `max`, car métriques cumulatives. - Pour les métriques cumulatives (`distance`, `calories`), la valeur affichée est **relative au scope affiché** : - `étape` : départ visuel à `0` au début de l'étape - `série` : départ visuel à `0` au début de la série - `exercice` : départ visuel à `0` au début de l'exercice - `séance` : départ visuel à `0` au début de la séance - Cette remise à zéro est **uniquement une règle d'affichage** ; on ne duplique pas les données en stockage. ### Règles de stockage des données pour les graphes - On stocke une donnée **toutes les 15 secondes** pour alimenter les graphes. - Cela concerne **uniquement** les données historisées pour affichage/statistiques, pas le flux live complet. - Source unique : **uniquement les données envoyées par la montre**. - Aucune interpolation. - Pour une fenêtre de 15 secondes, on conserve **la dernière donnée montre non encore consommée** au moment de l'échantillonnage. - Les métriques calculées (ex. calories) ne sont calculées/enregistrées que si la montre a effectivement fourni les valeurs nécessaires. - Ordre de grandeur attendu : sur 2 heures, environ **480 valeurs maximum par statistique**. ### Trous de données - Si aucune donnée n'est reçue pendant plus de **2 minutes**, le graphe relie la dernière valeur connue à la suivante via un **segment en pointillé**. - Ce segment pointillé est **purement visuel**. - On ne stocke **aucune fausse valeur intermédiaire**. ### Marqueurs par scope - Vue `étape` : pas de marqueurs supplémentaires demandés. - Vue `série` : marqueurs de **début/fin d'étape**. - Vue `exercice` : marqueurs de **début/fin de série**. - Vue `séance` : marqueurs de **début/fin d'exercice**. ### Contraintes transverses — 30 juillet 2026 - Les modifications doivent être prises en compte sur **toutes les couches de l'application**, **serveur inclus**, pour que la **sauvegarde** et la **synchronisation** fonctionnent correctement. - Il ne faut donc pas livrer une solution limitée au stockage local/UI si les données du ticket doivent voyager ou survivre correctement via les mécanismes de sync/historique. ### Hors périmètre V1 - Aucun buffer/rejeu local côté montre pour compenser une déconnexion téléphone-montre. - Ce sujet pourra être réévalué plus tard, mais il est **hors périmètre V1**.