--- id: "d3a8bc95-d1c7-4114-a964-7faa5b15835a" number: 4 title: "[DevBackend] Couche application : use cases et repositories" status: "open" priority: "high" sprint: null links: [{"target":"#3","kind":"dependsOn"}] agentRefs: [{"agentId":"10ee045b-1c41-479e-ba03-dceed9edd495","role":"assigned"}] createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} createdAt: 1784301293308 updatedAt: 1784301378940 version: 3 --- Implémenter ports/repositories et use cases pour : CRUD Exercise (règle "au moins une mesure active", avertissement si exercice déjà utilisé, archivage doux plutôt que suppression) ; CRUD Program (snapshot de l'exercice à l'ajout, mesures activées parmi celles autorisées, séries, cibles, repos rattaché à la série/l'exercice précédent) ; gestion WorkoutTemplate (composition de programmes en snapshot indépendant, overrides limités à setsCount et valeurs cibles numériques uniquement — pas de changement de mesures actives ni de structure) ; gestion ActiveWorkoutSession (démarrage, transitions série/repos, pause/reprise basées sur horodatages, pas sur un compteur mémoire) ; clôture de séance vers WorkoutHistory (snapshot autonome).