feat(exercice): modèle et migration pour l'auto-enchaînement des chronos d'étapes (ticket #75)

Étend le modèle Drift (migration schemaVersion 13→14, ADD COLUMN) et
la couche application (entités, use cases, repositories) pour
supporter l'auto-enchaînement des chronos d'étapes. flutter pub get
OK, build_runner OK, analyze propre (mêmes infos préexistantes),
141/141 tests verts, build APK debug validé. Premier ticket du
chantier "auto-enchaînement des chronos d'étapes" (#73).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-20 13:42:46 +02:00
parent f510053d55
commit e61365277b
8 changed files with 704 additions and 4 deletions

View File

@ -191,6 +191,8 @@ class Exercises extends SyncableTable {
IntColumn get defaultTargetReps => integer().nullable()();
RealColumn get defaultTargetScore => real().nullable()();
IntColumn get defaultTargetScoreTimeMs => integer().nullable()();
BoolColumn get autoStartNextTimedStep =>
boolean().withDefault(const Constant(true))();
DateTimeColumn get archivedAt => dateTime().nullable()();
@override
@ -296,6 +298,9 @@ class ProgramExercises extends SyncableTable {
text().nullable().references(MediaAssets, #id)();
TextColumn get exerciseImageMediaIdsSnapshotJson => text().nullable()();
TextColumn get exerciseStepsSnapshotJson => text().nullable()();
BoolColumn get autoStartNextTimedStepSnapshot =>
boolean().withDefault(const Constant(true))();
BoolColumn get autoStartNextTimedStepOverride => boolean().nullable()();
@ReferenceName('programExerciseVideoSnapshotReferences')
TextColumn get exerciseVideoMediaIdSnapshot =>
@ -390,6 +395,7 @@ class WorkoutTemplateExerciseOverrides extends SyncableTable {
IntColumn get targetRepsOverride => integer().nullable()();
RealColumn get targetScoreOverride => real().nullable()();
IntColumn get targetScoreTimeMsOverride => integer().nullable()();
BoolColumn get autoStartNextTimedStepOverride => boolean().nullable()();
@override
List<String> get customConstraints => [