Ajoute la note mémoire UX sur les valeurs par défaut d'exercice, clôture les tickets #39/#40 et le parent #30. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
35 lines
2.3 KiB
Markdown
35 lines
2.3 KiB
Markdown
---
|
|
name: gametime-ux-exercise-default-targets
|
|
description: memory note gametime-ux-exercise-default-targets
|
|
metadata:
|
|
type: project
|
|
---
|
|
# GameTime — Valeurs cibles par défaut à la création d'exercice (ticket #30, UX 2026-07-18)
|
|
|
|
Décision : ajouter les valeurs cibles par défaut au niveau **Exercice**, obligatoires pour les mesures activées (sauf Score chrono, optionnel).
|
|
|
|
## Formulaire exercice
|
|
- Temps activé → champ "Temps par défaut (s)", obligatoire, validation "Saisis un temps supérieur à 0."
|
|
- Répétitions activé → champ "Répétitions par défaut", obligatoire, validation "Saisis un nombre de répétitions supérieur à 0."
|
|
- Score activé + mode Saisie libre → nouveau champ "Score par défaut" en plus de "Score à saisir"/"Unité", validation "Saisis un score supérieur à 0."
|
|
- Score activé + mode Chrono intégré → PAS de "Score par défaut" ; à la place "Objectif de chrono par défaut (optionnel)", validation seulement si rempli ("Saisis un objectif supérieur à 0.").
|
|
- Mesure désactivée → son champ disparaît, pas de validation dessus. Réactivée → champ revient, doit être rempli avant sauvegarde.
|
|
|
|
## Champs domaine à ajouter sur Exercise
|
|
- `defaultTargetTimeSeconds` (obligatoire si hasTimeMeasure)
|
|
- `defaultTargetReps` (obligatoire si hasRepsMeasure)
|
|
- `defaultTargetScore` (obligatoire si hasScoreMeasure et scoreInputMode manual)
|
|
- `defaultTargetScoreTimeMs` (optionnel, seulement si scoreInputMode stopwatch)
|
|
|
|
Contrainte : valeur obligatoire toujours > 0 ; optionnelle (score chrono) mais si présente > 0.
|
|
|
|
## Utilisation dans programme
|
|
Quand un exercice est ajouté à un programme (ticket #20), les cibles sont préremplies depuis les valeurs par défaut de l'exercice au lieu des valeurs génériques actuelles :
|
|
- targetTimeSeconds ← defaultTargetTimeSeconds
|
|
- targetReps ← defaultTargetReps
|
|
- targetScore ← defaultTargetScore (score libre)
|
|
- targetScoreTimeMs ← defaultTargetScoreTimeMs si présent (score chrono)
|
|
Tout reste modifiable ensuite dans "Personnaliser l'exercice".
|
|
|
|
## Migration
|
|
Exercices existants sans valeurs par défaut : l'utilisateur devra compléter les champs manquants au prochain enregistrement de l'exercice (pas de blocage rétroactif immédiat, mais validation bloquante dès la prochaine sauvegarde). |