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

@ -592,6 +592,10 @@ final class ShareUseCases {
exerciseStepsSnapshot: _exerciseStepsFromSnapshot(
map['exerciseStepsSnapshot'],
),
autoStartNextTimedStepSnapshot:
map['autoStartNextTimedStepSnapshot'] as bool? ?? true,
autoStartNextTimedStepOverride:
map['autoStartNextTimedStepOverride'] as bool?,
exerciseArchivedSnapshot: map['exerciseArchivedSnapshot'] == true,
availableTimeSnapshot: map['availableTimeSnapshot'] == true,
availableRepsSnapshot: map['availableRepsSnapshot'] == true,
@ -733,6 +737,8 @@ final class ShareUseCases {
targetRepsOverride: map['targetRepsOverride'] as int?,
targetScoreOverride: (map['targetScoreOverride'] as num?)?.toDouble(),
targetScoreTimeMsOverride: map['targetScoreTimeMsOverride'] as int?,
autoStartNextTimedStepOverride:
map['autoStartNextTimedStepOverride'] as bool?,
),
);
}
@ -772,6 +778,7 @@ final class ExerciseUseCases {
int? defaultTargetReps,
double? defaultTargetScore,
int? defaultTargetScoreTimeMs,
bool autoStartNextTimedStep = true,
List<ExerciseStep> steps = const [],
}) async {
_validateExerciseSteps(steps);
@ -803,6 +810,7 @@ final class ExerciseUseCases {
defaultTargetReps: defaultTargetReps,
defaultTargetScore: defaultTargetScore,
defaultTargetScoreTimeMs: defaultTargetScoreTimeMs,
autoStartNextTimedStep: autoStartNextTimedStep,
steps: steps,
);
await repository.save(exercise);
@ -835,6 +843,7 @@ final class ExerciseUseCases {
Object? defaultTargetReps = _useCaseUnchanged,
Object? defaultTargetScore = _useCaseUnchanged,
Object? defaultTargetScoreTimeMs = _useCaseUnchanged,
bool? autoStartNextTimedStep,
Object? steps = _useCaseUnchanged,
}) async {
final exercise = await repository.findById(id);
@ -895,6 +904,7 @@ final class ExerciseUseCases {
defaultTargetReps: resolvedDefaultTargetReps,
defaultTargetScore: resolvedDefaultTargetScore,
defaultTargetScoreTimeMs: resolvedDefaultTargetScoreTimeMs,
autoStartNextTimedStep: autoStartNextTimedStep,
steps: resolvedSteps,
);
await repository.save(updated);
@ -1204,6 +1214,10 @@ final class ProgramUseCases {
exerciseImageMediaIdsSnapshot: input.exerciseImageMediaIdsSnapshot,
exerciseVideoMediaIdSnapshot: input.exerciseVideoMediaIdSnapshot,
exerciseStepsSnapshot: input.exerciseStepsSnapshot,
autoStartNextTimedStepSnapshot:
input.autoStartNextTimedStepSnapshot,
autoStartNextTimedStepOverride:
input.autoStartNextTimedStepOverride,
exerciseArchivedSnapshot: input.exerciseArchivedSnapshot,
availableTimeSnapshot: input.availableTimeSnapshot,
availableRepsSnapshot: input.availableRepsSnapshot,
@ -1322,6 +1336,8 @@ final class ProgramExerciseConfig {
this.exerciseImageMediaIdsSnapshot = const [],
this.exerciseVideoMediaIdSnapshot,
this.exerciseStepsSnapshot = const [],
this.autoStartNextTimedStepSnapshot = true,
this.autoStartNextTimedStepOverride,
this.exerciseArchivedSnapshot = false,
required this.availableTimeSnapshot,
required this.availableRepsSnapshot,
@ -1346,6 +1362,8 @@ final class ProgramExerciseConfig {
final List<String> exerciseImageMediaIdsSnapshot;
final String? exerciseVideoMediaIdSnapshot;
final List<ExerciseStep> exerciseStepsSnapshot;
final bool autoStartNextTimedStepSnapshot;
final bool? autoStartNextTimedStepOverride;
final bool exerciseArchivedSnapshot;
final bool availableTimeSnapshot;
final bool availableRepsSnapshot;
@ -1460,6 +1478,8 @@ final class WorkoutTemplateUseCases {
targetRepsOverride: input.targetRepsOverride,
targetScoreOverride: input.targetScoreOverride,
targetScoreTimeMsOverride: input.targetScoreTimeMsOverride,
autoStartNextTimedStepOverride:
input.autoStartNextTimedStepOverride,
),
);
}
@ -1502,6 +1522,7 @@ final class WorkoutTemplateUseCases {
int? targetRepsOverride,
double? targetScoreOverride,
int? targetScoreTimeMsOverride,
bool? autoStartNextTimedStepOverride,
Set<WorkoutMeasure>? attemptedMeasureOverride,
}) async {
if (attemptedMeasureOverride != null) {
@ -1519,6 +1540,7 @@ final class WorkoutTemplateUseCases {
targetRepsOverride: targetRepsOverride,
targetScoreOverride: targetScoreOverride,
targetScoreTimeMsOverride: targetScoreTimeMsOverride,
autoStartNextTimedStepOverride: autoStartNextTimedStepOverride,
);
await templateRepository.saveOverride(override);
return override;
@ -1568,6 +1590,7 @@ final class WorkoutTemplateExerciseOverrideConfig {
this.targetRepsOverride,
this.targetScoreOverride,
this.targetScoreTimeMsOverride,
this.autoStartNextTimedStepOverride,
});
final EntityMetadata? existingMetadata;
@ -1578,6 +1601,7 @@ final class WorkoutTemplateExerciseOverrideConfig {
final int? targetRepsOverride;
final double? targetScoreOverride;
final int? targetScoreTimeMsOverride;
final bool? autoStartNextTimedStepOverride;
}
final class ActiveWorkoutSessionUseCases {
@ -1635,6 +1659,8 @@ final class ActiveWorkoutSessionUseCases {
'targetRepsOverride': override.targetRepsOverride,
'targetScoreOverride': override.targetScoreOverride,
'targetScoreTimeMsOverride': override.targetScoreTimeMsOverride,
'autoStartNextTimedStepOverride':
override.autoStartNextTimedStepOverride,
},
)
.toList(),
@ -3185,6 +3211,8 @@ Map<String, Object?> _workoutTemplateSharePayload(WorkoutTemplate template) => {
'targetRepsOverride': override.targetRepsOverride,
'targetScoreOverride': override.targetScoreOverride,
'targetScoreTimeMsOverride': override.targetScoreTimeMsOverride,
'autoStartNextTimedStepOverride':
override.autoStartNextTimedStepOverride,
},
)
.toList(),

View File

@ -318,6 +318,7 @@ final class Exercise {
this.defaultTargetReps,
this.defaultTargetScore,
this.defaultTargetScoreTimeMs,
this.autoStartNextTimedStep = true,
List<ExerciseStep> steps = const [],
this.archivedAt,
}) : name = _nonBlank(name, 'Exercise name'),
@ -375,6 +376,7 @@ final class Exercise {
final int? defaultTargetReps;
final double? defaultTargetScore;
final int? defaultTargetScoreTimeMs;
final bool autoStartNextTimedStep;
final List<ExerciseStep> steps;
final DateTime? archivedAt;
@ -409,6 +411,7 @@ final class Exercise {
Object? defaultTargetReps = _unchanged,
Object? defaultTargetScore = _unchanged,
Object? defaultTargetScoreTimeMs = _unchanged,
bool? autoStartNextTimedStep,
Object? steps = _unchanged,
Object? archivedAt = _unchanged,
}) {
@ -456,6 +459,8 @@ final class Exercise {
defaultTargetScoreTimeMs: defaultTargetScoreTimeMs == _unchanged
? this.defaultTargetScoreTimeMs
: defaultTargetScoreTimeMs as int?,
autoStartNextTimedStep:
autoStartNextTimedStep ?? this.autoStartNextTimedStep,
steps: steps == _unchanged ? this.steps : steps as List<ExerciseStep>,
archivedAt: archivedAt == _unchanged
? this.archivedAt
@ -562,6 +567,8 @@ final class ProgramExercise {
List<String> exerciseImageMediaIdsSnapshot = const [],
this.exerciseVideoMediaIdSnapshot,
List<ExerciseStep> exerciseStepsSnapshot = const [],
this.autoStartNextTimedStepSnapshot = true,
this.autoStartNextTimedStepOverride,
this.exerciseArchivedSnapshot = false,
required this.availableTimeSnapshot,
required this.availableRepsSnapshot,
@ -628,6 +635,8 @@ final class ProgramExercise {
final List<String> exerciseImageMediaIdsSnapshot;
final String? exerciseVideoMediaIdSnapshot;
final List<ExerciseStep> exerciseStepsSnapshot;
final bool autoStartNextTimedStepSnapshot;
final bool? autoStartNextTimedStepOverride;
final bool exerciseArchivedSnapshot;
final bool availableTimeSnapshot;
final bool availableRepsSnapshot;
@ -675,6 +684,7 @@ final class ProgramExercise {
exerciseImageMediaIdsSnapshot: exercise.imageMediaIds,
exerciseVideoMediaIdSnapshot: exercise.videoMediaId,
exerciseStepsSnapshot: exercise.steps,
autoStartNextTimedStepSnapshot: exercise.autoStartNextTimedStep,
exerciseArchivedSnapshot: exercise.archivedAt != null,
availableTimeSnapshot: exercise.hasTimeMeasure,
availableRepsSnapshot: exercise.hasRepsMeasure,
@ -707,6 +717,8 @@ final class ProgramExercise {
'exerciseStepsSnapshot': exerciseStepsSnapshot
.map((step) => step.toSnapshotJson())
.toList(),
'autoStartNextTimedStepSnapshot': autoStartNextTimedStepSnapshot,
'autoStartNextTimedStepOverride': autoStartNextTimedStepOverride,
'exerciseArchivedSnapshot': exerciseArchivedSnapshot,
'availableTimeSnapshot': availableTimeSnapshot,
'availableRepsSnapshot': availableRepsSnapshot,
@ -802,6 +814,7 @@ final class WorkoutTemplateExerciseOverride {
this.targetRepsOverride,
this.targetScoreOverride,
this.targetScoreTimeMsOverride,
this.autoStartNextTimedStepOverride,
}) : snapshotProgramExerciseId = _nonBlank(
snapshotProgramExerciseId,
'Snapshot program exercise id',
@ -835,6 +848,7 @@ final class WorkoutTemplateExerciseOverride {
final int? targetRepsOverride;
final double? targetScoreOverride;
final int? targetScoreTimeMsOverride;
final bool? autoStartNextTimedStepOverride;
}
final class ActiveWorkoutSession {

View File

@ -46,7 +46,7 @@ final class AppDatabase extends _$AppDatabase {
}
@override
int get schemaVersion => 13;
int get schemaVersion => 14;
@override
MigrationStrategy get migration {
@ -100,6 +100,9 @@ final class AppDatabase extends _$AppDatabase {
if (from < 13) {
await _migrateToSchema13();
}
if (from < 14) {
await _migrateToSchema14();
}
await _createIndexes();
},
beforeOpen: (details) async {
@ -469,4 +472,26 @@ FROM exercises
await customStatement('ALTER TABLE exercises_new RENAME TO exercises');
await customStatement('PRAGMA foreign_keys = ON');
}
Future<void> _migrateToSchema14() async {
await customStatement(
'ALTER TABLE exercises ADD COLUMN auto_start_next_timed_step '
'INTEGER NOT NULL DEFAULT 1 CHECK (auto_start_next_timed_step IN (0, 1))',
);
await customStatement(
'ALTER TABLE program_exercises ADD COLUMN '
'auto_start_next_timed_step_snapshot INTEGER NOT NULL DEFAULT 1 '
'CHECK (auto_start_next_timed_step_snapshot IN (0, 1))',
);
await customStatement(
'ALTER TABLE program_exercises ADD COLUMN '
'auto_start_next_timed_step_override INTEGER '
'CHECK (auto_start_next_timed_step_override IN (0, 1))',
);
await customStatement(
'ALTER TABLE workout_template_exercise_overrides ADD COLUMN '
'auto_start_next_timed_step_override INTEGER '
'CHECK (auto_start_next_timed_step_override IN (0, 1))',
);
}
}

View File

@ -11542,6 +11542,21 @@ class $ExercisesTable extends Exercises
type: DriftSqlType.int,
requiredDuringInsert: false,
);
static const VerificationMeta _autoStartNextTimedStepMeta =
const VerificationMeta('autoStartNextTimedStep');
@override
late final GeneratedColumn<bool> autoStartNextTimedStep =
GeneratedColumn<bool>(
'auto_start_next_timed_step',
aliasedName,
false,
type: DriftSqlType.bool,
requiredDuringInsert: false,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'CHECK ("auto_start_next_timed_step" IN (0, 1))',
),
defaultValue: const Constant(true),
);
static const VerificationMeta _archivedAtMeta = const VerificationMeta(
'archivedAt',
);
@ -11580,6 +11595,7 @@ class $ExercisesTable extends Exercises
defaultTargetReps,
defaultTargetScore,
defaultTargetScoreTimeMs,
autoStartNextTimedStep,
archivedAt,
];
@override
@ -11812,6 +11828,15 @@ class $ExercisesTable extends Exercises
),
);
}
if (data.containsKey('auto_start_next_timed_step')) {
context.handle(
_autoStartNextTimedStepMeta,
autoStartNextTimedStep.isAcceptableOrUnknown(
data['auto_start_next_timed_step']!,
_autoStartNextTimedStepMeta,
),
);
}
if (data.containsKey('archived_at')) {
context.handle(
_archivedAtMeta,
@ -11927,6 +11952,10 @@ class $ExercisesTable extends Exercises
DriftSqlType.int,
data['${effectivePrefix}default_target_score_time_ms'],
),
autoStartNextTimedStep: attachedDatabase.typeMapping.read(
DriftSqlType.bool,
data['${effectivePrefix}auto_start_next_timed_step'],
)!,
archivedAt: attachedDatabase.typeMapping.read(
DriftSqlType.dateTime,
data['${effectivePrefix}archived_at'],
@ -11966,6 +11995,7 @@ class Exercise extends DataClass implements Insertable<Exercise> {
final int? defaultTargetReps;
final double? defaultTargetScore;
final int? defaultTargetScoreTimeMs;
final bool autoStartNextTimedStep;
final DateTime? archivedAt;
const Exercise({
required this.id,
@ -11993,6 +12023,7 @@ class Exercise extends DataClass implements Insertable<Exercise> {
this.defaultTargetReps,
this.defaultTargetScore,
this.defaultTargetScoreTimeMs,
required this.autoStartNextTimedStep,
this.archivedAt,
});
@override
@ -12053,6 +12084,7 @@ class Exercise extends DataClass implements Insertable<Exercise> {
defaultTargetScoreTimeMs,
);
}
map['auto_start_next_timed_step'] = Variable<bool>(autoStartNextTimedStep);
if (!nullToAbsent || archivedAt != null) {
map['archived_at'] = Variable<DateTime>(archivedAt);
}
@ -12112,6 +12144,7 @@ class Exercise extends DataClass implements Insertable<Exercise> {
defaultTargetScoreTimeMs: defaultTargetScoreTimeMs == null && nullToAbsent
? const Value.absent()
: Value(defaultTargetScoreTimeMs),
autoStartNextTimedStep: Value(autoStartNextTimedStep),
archivedAt: archivedAt == null && nullToAbsent
? const Value.absent()
: Value(archivedAt),
@ -12157,6 +12190,9 @@ class Exercise extends DataClass implements Insertable<Exercise> {
defaultTargetScoreTimeMs: serializer.fromJson<int?>(
json['defaultTargetScoreTimeMs'],
),
autoStartNextTimedStep: serializer.fromJson<bool>(
json['autoStartNextTimedStep'],
),
archivedAt: serializer.fromJson<DateTime?>(json['archivedAt']),
);
}
@ -12193,6 +12229,7 @@ class Exercise extends DataClass implements Insertable<Exercise> {
'defaultTargetScoreTimeMs': serializer.toJson<int?>(
defaultTargetScoreTimeMs,
),
'autoStartNextTimedStep': serializer.toJson<bool>(autoStartNextTimedStep),
'archivedAt': serializer.toJson<DateTime?>(archivedAt),
};
}
@ -12223,6 +12260,7 @@ class Exercise extends DataClass implements Insertable<Exercise> {
Value<int?> defaultTargetReps = const Value.absent(),
Value<double?> defaultTargetScore = const Value.absent(),
Value<int?> defaultTargetScoreTimeMs = const Value.absent(),
bool? autoStartNextTimedStep,
Value<DateTime?> archivedAt = const Value.absent(),
}) => Exercise(
id: id ?? this.id,
@ -12262,6 +12300,8 @@ class Exercise extends DataClass implements Insertable<Exercise> {
defaultTargetScoreTimeMs: defaultTargetScoreTimeMs.present
? defaultTargetScoreTimeMs.value
: this.defaultTargetScoreTimeMs,
autoStartNextTimedStep:
autoStartNextTimedStep ?? this.autoStartNextTimedStep,
archivedAt: archivedAt.present ? archivedAt.value : this.archivedAt,
);
Exercise copyWithCompanion(ExercisesCompanion data) {
@ -12327,6 +12367,9 @@ class Exercise extends DataClass implements Insertable<Exercise> {
defaultTargetScoreTimeMs: data.defaultTargetScoreTimeMs.present
? data.defaultTargetScoreTimeMs.value
: this.defaultTargetScoreTimeMs,
autoStartNextTimedStep: data.autoStartNextTimedStep.present
? data.autoStartNextTimedStep.value
: this.autoStartNextTimedStep,
archivedAt: data.archivedAt.present
? data.archivedAt.value
: this.archivedAt,
@ -12361,6 +12404,7 @@ class Exercise extends DataClass implements Insertable<Exercise> {
..write('defaultTargetReps: $defaultTargetReps, ')
..write('defaultTargetScore: $defaultTargetScore, ')
..write('defaultTargetScoreTimeMs: $defaultTargetScoreTimeMs, ')
..write('autoStartNextTimedStep: $autoStartNextTimedStep, ')
..write('archivedAt: $archivedAt')
..write(')'))
.toString();
@ -12393,6 +12437,7 @@ class Exercise extends DataClass implements Insertable<Exercise> {
defaultTargetReps,
defaultTargetScore,
defaultTargetScoreTimeMs,
autoStartNextTimedStep,
archivedAt,
]);
@override
@ -12424,6 +12469,7 @@ class Exercise extends DataClass implements Insertable<Exercise> {
other.defaultTargetReps == this.defaultTargetReps &&
other.defaultTargetScore == this.defaultTargetScore &&
other.defaultTargetScoreTimeMs == this.defaultTargetScoreTimeMs &&
other.autoStartNextTimedStep == this.autoStartNextTimedStep &&
other.archivedAt == this.archivedAt);
}
@ -12453,6 +12499,7 @@ class ExercisesCompanion extends UpdateCompanion<Exercise> {
final Value<int?> defaultTargetReps;
final Value<double?> defaultTargetScore;
final Value<int?> defaultTargetScoreTimeMs;
final Value<bool> autoStartNextTimedStep;
final Value<DateTime?> archivedAt;
final Value<int> rowid;
const ExercisesCompanion({
@ -12481,6 +12528,7 @@ class ExercisesCompanion extends UpdateCompanion<Exercise> {
this.defaultTargetReps = const Value.absent(),
this.defaultTargetScore = const Value.absent(),
this.defaultTargetScoreTimeMs = const Value.absent(),
this.autoStartNextTimedStep = const Value.absent(),
this.archivedAt = const Value.absent(),
this.rowid = const Value.absent(),
});
@ -12510,6 +12558,7 @@ class ExercisesCompanion extends UpdateCompanion<Exercise> {
this.defaultTargetReps = const Value.absent(),
this.defaultTargetScore = const Value.absent(),
this.defaultTargetScoreTimeMs = const Value.absent(),
this.autoStartNextTimedStep = const Value.absent(),
this.archivedAt = const Value.absent(),
this.rowid = const Value.absent(),
}) : id = Value(id),
@ -12548,6 +12597,7 @@ class ExercisesCompanion extends UpdateCompanion<Exercise> {
Expression<int>? defaultTargetReps,
Expression<double>? defaultTargetScore,
Expression<int>? defaultTargetScoreTimeMs,
Expression<bool>? autoStartNextTimedStep,
Expression<DateTime>? archivedAt,
Expression<int>? rowid,
}) {
@ -12581,6 +12631,8 @@ class ExercisesCompanion extends UpdateCompanion<Exercise> {
'default_target_score': defaultTargetScore,
if (defaultTargetScoreTimeMs != null)
'default_target_score_time_ms': defaultTargetScoreTimeMs,
if (autoStartNextTimedStep != null)
'auto_start_next_timed_step': autoStartNextTimedStep,
if (archivedAt != null) 'archived_at': archivedAt,
if (rowid != null) 'rowid': rowid,
});
@ -12612,6 +12664,7 @@ class ExercisesCompanion extends UpdateCompanion<Exercise> {
Value<int?>? defaultTargetReps,
Value<double?>? defaultTargetScore,
Value<int?>? defaultTargetScoreTimeMs,
Value<bool>? autoStartNextTimedStep,
Value<DateTime?>? archivedAt,
Value<int>? rowid,
}) {
@ -12643,6 +12696,8 @@ class ExercisesCompanion extends UpdateCompanion<Exercise> {
defaultTargetScore: defaultTargetScore ?? this.defaultTargetScore,
defaultTargetScoreTimeMs:
defaultTargetScoreTimeMs ?? this.defaultTargetScoreTimeMs,
autoStartNextTimedStep:
autoStartNextTimedStep ?? this.autoStartNextTimedStep,
archivedAt: archivedAt ?? this.archivedAt,
rowid: rowid ?? this.rowid,
);
@ -12732,6 +12787,11 @@ class ExercisesCompanion extends UpdateCompanion<Exercise> {
defaultTargetScoreTimeMs.value,
);
}
if (autoStartNextTimedStep.present) {
map['auto_start_next_timed_step'] = Variable<bool>(
autoStartNextTimedStep.value,
);
}
if (archivedAt.present) {
map['archived_at'] = Variable<DateTime>(archivedAt.value);
}
@ -12769,6 +12829,7 @@ class ExercisesCompanion extends UpdateCompanion<Exercise> {
..write('defaultTargetReps: $defaultTargetReps, ')
..write('defaultTargetScore: $defaultTargetScore, ')
..write('defaultTargetScoreTimeMs: $defaultTargetScoreTimeMs, ')
..write('autoStartNextTimedStep: $autoStartNextTimedStep, ')
..write('archivedAt: $archivedAt, ')
..write('rowid: $rowid')
..write(')'))
@ -17138,6 +17199,35 @@ class $ProgramExercisesTable extends ProgramExercises
type: DriftSqlType.string,
requiredDuringInsert: false,
);
static const VerificationMeta _autoStartNextTimedStepSnapshotMeta =
const VerificationMeta('autoStartNextTimedStepSnapshot');
@override
late final GeneratedColumn<bool> autoStartNextTimedStepSnapshot =
GeneratedColumn<bool>(
'auto_start_next_timed_step_snapshot',
aliasedName,
false,
type: DriftSqlType.bool,
requiredDuringInsert: false,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'CHECK ("auto_start_next_timed_step_snapshot" IN (0, 1))',
),
defaultValue: const Constant(true),
);
static const VerificationMeta _autoStartNextTimedStepOverrideMeta =
const VerificationMeta('autoStartNextTimedStepOverride');
@override
late final GeneratedColumn<bool> autoStartNextTimedStepOverride =
GeneratedColumn<bool>(
'auto_start_next_timed_step_override',
aliasedName,
true,
type: DriftSqlType.bool,
requiredDuringInsert: false,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'CHECK ("auto_start_next_timed_step_override" IN (0, 1))',
),
);
static const VerificationMeta _exerciseVideoMediaIdSnapshotMeta =
const VerificationMeta('exerciseVideoMediaIdSnapshot');
@override
@ -17372,6 +17462,8 @@ class $ProgramExercisesTable extends ProgramExercises
exerciseImageMediaIdSnapshot,
exerciseImageMediaIdsSnapshotJson,
exerciseStepsSnapshotJson,
autoStartNextTimedStepSnapshot,
autoStartNextTimedStepOverride,
exerciseVideoMediaIdSnapshot,
exerciseArchivedSnapshot,
availableTimeSnapshot,
@ -17567,6 +17659,24 @@ class $ProgramExercisesTable extends ProgramExercises
),
);
}
if (data.containsKey('auto_start_next_timed_step_snapshot')) {
context.handle(
_autoStartNextTimedStepSnapshotMeta,
autoStartNextTimedStepSnapshot.isAcceptableOrUnknown(
data['auto_start_next_timed_step_snapshot']!,
_autoStartNextTimedStepSnapshotMeta,
),
);
}
if (data.containsKey('auto_start_next_timed_step_override')) {
context.handle(
_autoStartNextTimedStepOverrideMeta,
autoStartNextTimedStepOverride.isAcceptableOrUnknown(
data['auto_start_next_timed_step_override']!,
_autoStartNextTimedStepOverrideMeta,
),
);
}
if (data.containsKey('exercise_video_media_id_snapshot')) {
context.handle(
_exerciseVideoMediaIdSnapshotMeta,
@ -17813,6 +17923,14 @@ class $ProgramExercisesTable extends ProgramExercises
DriftSqlType.string,
data['${effectivePrefix}exercise_steps_snapshot_json'],
),
autoStartNextTimedStepSnapshot: attachedDatabase.typeMapping.read(
DriftSqlType.bool,
data['${effectivePrefix}auto_start_next_timed_step_snapshot'],
)!,
autoStartNextTimedStepOverride: attachedDatabase.typeMapping.read(
DriftSqlType.bool,
data['${effectivePrefix}auto_start_next_timed_step_override'],
),
exerciseVideoMediaIdSnapshot: attachedDatabase.typeMapping.read(
DriftSqlType.string,
data['${effectivePrefix}exercise_video_media_id_snapshot'],
@ -17910,6 +18028,8 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
final String? exerciseImageMediaIdSnapshot;
final String? exerciseImageMediaIdsSnapshotJson;
final String? exerciseStepsSnapshotJson;
final bool autoStartNextTimedStepSnapshot;
final bool? autoStartNextTimedStepOverride;
final String? exerciseVideoMediaIdSnapshot;
final bool exerciseArchivedSnapshot;
final bool availableTimeSnapshot;
@ -17947,6 +18067,8 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
this.exerciseImageMediaIdSnapshot,
this.exerciseImageMediaIdsSnapshotJson,
this.exerciseStepsSnapshotJson,
required this.autoStartNextTimedStepSnapshot,
this.autoStartNextTimedStepOverride,
this.exerciseVideoMediaIdSnapshot,
required this.exerciseArchivedSnapshot,
required this.availableTimeSnapshot,
@ -18013,6 +18135,14 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
exerciseStepsSnapshotJson,
);
}
map['auto_start_next_timed_step_snapshot'] = Variable<bool>(
autoStartNextTimedStepSnapshot,
);
if (!nullToAbsent || autoStartNextTimedStepOverride != null) {
map['auto_start_next_timed_step_override'] = Variable<bool>(
autoStartNextTimedStepOverride,
);
}
if (!nullToAbsent || exerciseVideoMediaIdSnapshot != null) {
map['exercise_video_media_id_snapshot'] = Variable<String>(
exerciseVideoMediaIdSnapshot,
@ -18096,6 +18226,11 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
exerciseStepsSnapshotJson == null && nullToAbsent
? const Value.absent()
: Value(exerciseStepsSnapshotJson),
autoStartNextTimedStepSnapshot: Value(autoStartNextTimedStepSnapshot),
autoStartNextTimedStepOverride:
autoStartNextTimedStepOverride == null && nullToAbsent
? const Value.absent()
: Value(autoStartNextTimedStepOverride),
exerciseVideoMediaIdSnapshot:
exerciseVideoMediaIdSnapshot == null && nullToAbsent
? const Value.absent()
@ -18170,6 +18305,12 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
exerciseStepsSnapshotJson: serializer.fromJson<String?>(
json['exerciseStepsSnapshotJson'],
),
autoStartNextTimedStepSnapshot: serializer.fromJson<bool>(
json['autoStartNextTimedStepSnapshot'],
),
autoStartNextTimedStepOverride: serializer.fromJson<bool?>(
json['autoStartNextTimedStepOverride'],
),
exerciseVideoMediaIdSnapshot: serializer.fromJson<String?>(
json['exerciseVideoMediaIdSnapshot'],
),
@ -18238,6 +18379,12 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
'exerciseStepsSnapshotJson': serializer.toJson<String?>(
exerciseStepsSnapshotJson,
),
'autoStartNextTimedStepSnapshot': serializer.toJson<bool>(
autoStartNextTimedStepSnapshot,
),
'autoStartNextTimedStepOverride': serializer.toJson<bool?>(
autoStartNextTimedStepOverride,
),
'exerciseVideoMediaIdSnapshot': serializer.toJson<String?>(
exerciseVideoMediaIdSnapshot,
),
@ -18284,6 +18431,8 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
Value<String?> exerciseImageMediaIdSnapshot = const Value.absent(),
Value<String?> exerciseImageMediaIdsSnapshotJson = const Value.absent(),
Value<String?> exerciseStepsSnapshotJson = const Value.absent(),
bool? autoStartNextTimedStepSnapshot,
Value<bool?> autoStartNextTimedStepOverride = const Value.absent(),
Value<String?> exerciseVideoMediaIdSnapshot = const Value.absent(),
bool? exerciseArchivedSnapshot,
bool? availableTimeSnapshot,
@ -18335,6 +18484,11 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
exerciseStepsSnapshotJson: exerciseStepsSnapshotJson.present
? exerciseStepsSnapshotJson.value
: this.exerciseStepsSnapshotJson,
autoStartNextTimedStepSnapshot:
autoStartNextTimedStepSnapshot ?? this.autoStartNextTimedStepSnapshot,
autoStartNextTimedStepOverride: autoStartNextTimedStepOverride.present
? autoStartNextTimedStepOverride.value
: this.autoStartNextTimedStepOverride,
exerciseVideoMediaIdSnapshot: exerciseVideoMediaIdSnapshot.present
? exerciseVideoMediaIdSnapshot.value
: this.exerciseVideoMediaIdSnapshot,
@ -18414,6 +18568,14 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
exerciseStepsSnapshotJson: data.exerciseStepsSnapshotJson.present
? data.exerciseStepsSnapshotJson.value
: this.exerciseStepsSnapshotJson,
autoStartNextTimedStepSnapshot:
data.autoStartNextTimedStepSnapshot.present
? data.autoStartNextTimedStepSnapshot.value
: this.autoStartNextTimedStepSnapshot,
autoStartNextTimedStepOverride:
data.autoStartNextTimedStepOverride.present
? data.autoStartNextTimedStepOverride.value
: this.autoStartNextTimedStepOverride,
exerciseVideoMediaIdSnapshot: data.exerciseVideoMediaIdSnapshot.present
? data.exerciseVideoMediaIdSnapshot.value
: this.exerciseVideoMediaIdSnapshot,
@ -18492,6 +18654,12 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
'exerciseImageMediaIdsSnapshotJson: $exerciseImageMediaIdsSnapshotJson, ',
)
..write('exerciseStepsSnapshotJson: $exerciseStepsSnapshotJson, ')
..write(
'autoStartNextTimedStepSnapshot: $autoStartNextTimedStepSnapshot, ',
)
..write(
'autoStartNextTimedStepOverride: $autoStartNextTimedStepOverride, ',
)
..write(
'exerciseVideoMediaIdSnapshot: $exerciseVideoMediaIdSnapshot, ',
)
@ -18536,6 +18704,8 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
exerciseImageMediaIdSnapshot,
exerciseImageMediaIdsSnapshotJson,
exerciseStepsSnapshotJson,
autoStartNextTimedStepSnapshot,
autoStartNextTimedStepOverride,
exerciseVideoMediaIdSnapshot,
exerciseArchivedSnapshot,
availableTimeSnapshot,
@ -18580,6 +18750,10 @@ class ProgramExercise extends DataClass implements Insertable<ProgramExercise> {
other.exerciseImageMediaIdsSnapshotJson ==
this.exerciseImageMediaIdsSnapshotJson &&
other.exerciseStepsSnapshotJson == this.exerciseStepsSnapshotJson &&
other.autoStartNextTimedStepSnapshot ==
this.autoStartNextTimedStepSnapshot &&
other.autoStartNextTimedStepOverride ==
this.autoStartNextTimedStepOverride &&
other.exerciseVideoMediaIdSnapshot ==
this.exerciseVideoMediaIdSnapshot &&
other.exerciseArchivedSnapshot == this.exerciseArchivedSnapshot &&
@ -18620,6 +18794,8 @@ class ProgramExercisesCompanion extends UpdateCompanion<ProgramExercise> {
final Value<String?> exerciseImageMediaIdSnapshot;
final Value<String?> exerciseImageMediaIdsSnapshotJson;
final Value<String?> exerciseStepsSnapshotJson;
final Value<bool> autoStartNextTimedStepSnapshot;
final Value<bool?> autoStartNextTimedStepOverride;
final Value<String?> exerciseVideoMediaIdSnapshot;
final Value<bool> exerciseArchivedSnapshot;
final Value<bool> availableTimeSnapshot;
@ -18658,6 +18834,8 @@ class ProgramExercisesCompanion extends UpdateCompanion<ProgramExercise> {
this.exerciseImageMediaIdSnapshot = const Value.absent(),
this.exerciseImageMediaIdsSnapshotJson = const Value.absent(),
this.exerciseStepsSnapshotJson = const Value.absent(),
this.autoStartNextTimedStepSnapshot = const Value.absent(),
this.autoStartNextTimedStepOverride = const Value.absent(),
this.exerciseVideoMediaIdSnapshot = const Value.absent(),
this.exerciseArchivedSnapshot = const Value.absent(),
this.availableTimeSnapshot = const Value.absent(),
@ -18697,6 +18875,8 @@ class ProgramExercisesCompanion extends UpdateCompanion<ProgramExercise> {
this.exerciseImageMediaIdSnapshot = const Value.absent(),
this.exerciseImageMediaIdsSnapshotJson = const Value.absent(),
this.exerciseStepsSnapshotJson = const Value.absent(),
this.autoStartNextTimedStepSnapshot = const Value.absent(),
this.autoStartNextTimedStepOverride = const Value.absent(),
this.exerciseVideoMediaIdSnapshot = const Value.absent(),
this.exerciseArchivedSnapshot = const Value.absent(),
required bool availableTimeSnapshot,
@ -18751,6 +18931,8 @@ class ProgramExercisesCompanion extends UpdateCompanion<ProgramExercise> {
Expression<String>? exerciseImageMediaIdSnapshot,
Expression<String>? exerciseImageMediaIdsSnapshotJson,
Expression<String>? exerciseStepsSnapshotJson,
Expression<bool>? autoStartNextTimedStepSnapshot,
Expression<bool>? autoStartNextTimedStepOverride,
Expression<String>? exerciseVideoMediaIdSnapshot,
Expression<bool>? exerciseArchivedSnapshot,
Expression<bool>? availableTimeSnapshot,
@ -18797,6 +18979,10 @@ class ProgramExercisesCompanion extends UpdateCompanion<ProgramExercise> {
exerciseImageMediaIdsSnapshotJson,
if (exerciseStepsSnapshotJson != null)
'exercise_steps_snapshot_json': exerciseStepsSnapshotJson,
if (autoStartNextTimedStepSnapshot != null)
'auto_start_next_timed_step_snapshot': autoStartNextTimedStepSnapshot,
if (autoStartNextTimedStepOverride != null)
'auto_start_next_timed_step_override': autoStartNextTimedStepOverride,
if (exerciseVideoMediaIdSnapshot != null)
'exercise_video_media_id_snapshot': exerciseVideoMediaIdSnapshot,
if (exerciseArchivedSnapshot != null)
@ -18846,6 +19032,8 @@ class ProgramExercisesCompanion extends UpdateCompanion<ProgramExercise> {
Value<String?>? exerciseImageMediaIdSnapshot,
Value<String?>? exerciseImageMediaIdsSnapshotJson,
Value<String?>? exerciseStepsSnapshotJson,
Value<bool>? autoStartNextTimedStepSnapshot,
Value<bool?>? autoStartNextTimedStepOverride,
Value<String?>? exerciseVideoMediaIdSnapshot,
Value<bool>? exerciseArchivedSnapshot,
Value<bool>? availableTimeSnapshot,
@ -18890,6 +19078,10 @@ class ProgramExercisesCompanion extends UpdateCompanion<ProgramExercise> {
this.exerciseImageMediaIdsSnapshotJson,
exerciseStepsSnapshotJson:
exerciseStepsSnapshotJson ?? this.exerciseStepsSnapshotJson,
autoStartNextTimedStepSnapshot:
autoStartNextTimedStepSnapshot ?? this.autoStartNextTimedStepSnapshot,
autoStartNextTimedStepOverride:
autoStartNextTimedStepOverride ?? this.autoStartNextTimedStepOverride,
exerciseVideoMediaIdSnapshot:
exerciseVideoMediaIdSnapshot ?? this.exerciseVideoMediaIdSnapshot,
exerciseArchivedSnapshot:
@ -18989,6 +19181,16 @@ class ProgramExercisesCompanion extends UpdateCompanion<ProgramExercise> {
exerciseStepsSnapshotJson.value,
);
}
if (autoStartNextTimedStepSnapshot.present) {
map['auto_start_next_timed_step_snapshot'] = Variable<bool>(
autoStartNextTimedStepSnapshot.value,
);
}
if (autoStartNextTimedStepOverride.present) {
map['auto_start_next_timed_step_override'] = Variable<bool>(
autoStartNextTimedStepOverride.value,
);
}
if (exerciseVideoMediaIdSnapshot.present) {
map['exercise_video_media_id_snapshot'] = Variable<String>(
exerciseVideoMediaIdSnapshot.value,
@ -19084,6 +19286,12 @@ class ProgramExercisesCompanion extends UpdateCompanion<ProgramExercise> {
'exerciseImageMediaIdsSnapshotJson: $exerciseImageMediaIdsSnapshotJson, ',
)
..write('exerciseStepsSnapshotJson: $exerciseStepsSnapshotJson, ')
..write(
'autoStartNextTimedStepSnapshot: $autoStartNextTimedStepSnapshot, ',
)
..write(
'autoStartNextTimedStepOverride: $autoStartNextTimedStepOverride, ',
)
..write(
'exerciseVideoMediaIdSnapshot: $exerciseVideoMediaIdSnapshot, ',
)
@ -27197,6 +27405,20 @@ class $WorkoutTemplateExerciseOverridesTable
type: DriftSqlType.int,
requiredDuringInsert: false,
);
static const VerificationMeta _autoStartNextTimedStepOverrideMeta =
const VerificationMeta('autoStartNextTimedStepOverride');
@override
late final GeneratedColumn<bool> autoStartNextTimedStepOverride =
GeneratedColumn<bool>(
'auto_start_next_timed_step_override',
aliasedName,
true,
type: DriftSqlType.bool,
requiredDuringInsert: false,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'CHECK ("auto_start_next_timed_step_override" IN (0, 1))',
),
);
@override
List<GeneratedColumn> get $columns => [
id,
@ -27217,6 +27439,7 @@ class $WorkoutTemplateExerciseOverridesTable
targetRepsOverride,
targetScoreOverride,
targetScoreTimeMsOverride,
autoStartNextTimedStepOverride,
];
@override
String get aliasedName => _alias ?? actualTableName;
@ -27390,6 +27613,15 @@ class $WorkoutTemplateExerciseOverridesTable
),
);
}
if (data.containsKey('auto_start_next_timed_step_override')) {
context.handle(
_autoStartNextTimedStepOverrideMeta,
autoStartNextTimedStepOverride.isAcceptableOrUnknown(
data['auto_start_next_timed_step_override']!,
_autoStartNextTimedStepOverrideMeta,
),
);
}
return context;
}
@ -27474,6 +27706,10 @@ class $WorkoutTemplateExerciseOverridesTable
DriftSqlType.int,
data['${effectivePrefix}target_score_time_ms_override'],
),
autoStartNextTimedStepOverride: attachedDatabase.typeMapping.read(
DriftSqlType.bool,
data['${effectivePrefix}auto_start_next_timed_step_override'],
),
);
}
@ -27503,6 +27739,7 @@ class WorkoutTemplateExerciseOverride extends DataClass
final int? targetRepsOverride;
final double? targetScoreOverride;
final int? targetScoreTimeMsOverride;
final bool? autoStartNextTimedStepOverride;
const WorkoutTemplateExerciseOverride({
required this.id,
required this.createdAt,
@ -27522,6 +27759,7 @@ class WorkoutTemplateExerciseOverride extends DataClass
this.targetRepsOverride,
this.targetScoreOverride,
this.targetScoreTimeMsOverride,
this.autoStartNextTimedStepOverride,
});
@override
Map<String, Expression> toColumns(bool nullToAbsent) {
@ -27570,6 +27808,11 @@ class WorkoutTemplateExerciseOverride extends DataClass
targetScoreTimeMsOverride,
);
}
if (!nullToAbsent || autoStartNextTimedStepOverride != null) {
map['auto_start_next_timed_step_override'] = Variable<bool>(
autoStartNextTimedStepOverride,
);
}
return map;
}
@ -27613,6 +27856,10 @@ class WorkoutTemplateExerciseOverride extends DataClass
targetScoreTimeMsOverride == null && nullToAbsent
? const Value.absent()
: Value(targetScoreTimeMsOverride),
autoStartNextTimedStepOverride:
autoStartNextTimedStepOverride == null && nullToAbsent
? const Value.absent()
: Value(autoStartNextTimedStepOverride),
);
}
@ -27652,6 +27899,9 @@ class WorkoutTemplateExerciseOverride extends DataClass
targetScoreTimeMsOverride: serializer.fromJson<int?>(
json['targetScoreTimeMsOverride'],
),
autoStartNextTimedStepOverride: serializer.fromJson<bool?>(
json['autoStartNextTimedStepOverride'],
),
);
}
@override
@ -27684,6 +27934,9 @@ class WorkoutTemplateExerciseOverride extends DataClass
'targetScoreTimeMsOverride': serializer.toJson<int?>(
targetScoreTimeMsOverride,
),
'autoStartNextTimedStepOverride': serializer.toJson<bool?>(
autoStartNextTimedStepOverride,
),
};
}
@ -27706,6 +27959,7 @@ class WorkoutTemplateExerciseOverride extends DataClass
Value<int?> targetRepsOverride = const Value.absent(),
Value<double?> targetScoreOverride = const Value.absent(),
Value<int?> targetScoreTimeMsOverride = const Value.absent(),
Value<bool?> autoStartNextTimedStepOverride = const Value.absent(),
}) => WorkoutTemplateExerciseOverride(
id: id ?? this.id,
createdAt: createdAt ?? this.createdAt,
@ -27741,6 +27995,9 @@ class WorkoutTemplateExerciseOverride extends DataClass
targetScoreTimeMsOverride: targetScoreTimeMsOverride.present
? targetScoreTimeMsOverride.value
: this.targetScoreTimeMsOverride,
autoStartNextTimedStepOverride: autoStartNextTimedStepOverride.present
? autoStartNextTimedStepOverride.value
: this.autoStartNextTimedStepOverride,
);
WorkoutTemplateExerciseOverride copyWithCompanion(
WorkoutTemplateExerciseOverridesCompanion data,
@ -27790,6 +28047,10 @@ class WorkoutTemplateExerciseOverride extends DataClass
targetScoreTimeMsOverride: data.targetScoreTimeMsOverride.present
? data.targetScoreTimeMsOverride.value
: this.targetScoreTimeMsOverride,
autoStartNextTimedStepOverride:
data.autoStartNextTimedStepOverride.present
? data.autoStartNextTimedStepOverride.value
: this.autoStartNextTimedStepOverride,
);
}
@ -27813,7 +28074,10 @@ class WorkoutTemplateExerciseOverride extends DataClass
..write('targetTimeSecondsOverride: $targetTimeSecondsOverride, ')
..write('targetRepsOverride: $targetRepsOverride, ')
..write('targetScoreOverride: $targetScoreOverride, ')
..write('targetScoreTimeMsOverride: $targetScoreTimeMsOverride')
..write('targetScoreTimeMsOverride: $targetScoreTimeMsOverride, ')
..write(
'autoStartNextTimedStepOverride: $autoStartNextTimedStepOverride',
)
..write(')'))
.toString();
}
@ -27838,6 +28102,7 @@ class WorkoutTemplateExerciseOverride extends DataClass
targetRepsOverride,
targetScoreOverride,
targetScoreTimeMsOverride,
autoStartNextTimedStepOverride,
);
@override
bool operator ==(Object other) =>
@ -27860,7 +28125,9 @@ class WorkoutTemplateExerciseOverride extends DataClass
other.targetTimeSecondsOverride == this.targetTimeSecondsOverride &&
other.targetRepsOverride == this.targetRepsOverride &&
other.targetScoreOverride == this.targetScoreOverride &&
other.targetScoreTimeMsOverride == this.targetScoreTimeMsOverride);
other.targetScoreTimeMsOverride == this.targetScoreTimeMsOverride &&
other.autoStartNextTimedStepOverride ==
this.autoStartNextTimedStepOverride);
}
class WorkoutTemplateExerciseOverridesCompanion
@ -27883,6 +28150,7 @@ class WorkoutTemplateExerciseOverridesCompanion
final Value<int?> targetRepsOverride;
final Value<double?> targetScoreOverride;
final Value<int?> targetScoreTimeMsOverride;
final Value<bool?> autoStartNextTimedStepOverride;
final Value<int> rowid;
const WorkoutTemplateExerciseOverridesCompanion({
this.id = const Value.absent(),
@ -27903,6 +28171,7 @@ class WorkoutTemplateExerciseOverridesCompanion
this.targetRepsOverride = const Value.absent(),
this.targetScoreOverride = const Value.absent(),
this.targetScoreTimeMsOverride = const Value.absent(),
this.autoStartNextTimedStepOverride = const Value.absent(),
this.rowid = const Value.absent(),
});
WorkoutTemplateExerciseOverridesCompanion.insert({
@ -27924,6 +28193,7 @@ class WorkoutTemplateExerciseOverridesCompanion
this.targetRepsOverride = const Value.absent(),
this.targetScoreOverride = const Value.absent(),
this.targetScoreTimeMsOverride = const Value.absent(),
this.autoStartNextTimedStepOverride = const Value.absent(),
this.rowid = const Value.absent(),
}) : id = Value(id),
createdAt = Value(createdAt),
@ -27952,6 +28222,7 @@ class WorkoutTemplateExerciseOverridesCompanion
Expression<int>? targetRepsOverride,
Expression<double>? targetScoreOverride,
Expression<int>? targetScoreTimeMsOverride,
Expression<bool>? autoStartNextTimedStepOverride,
Expression<int>? rowid,
}) {
return RawValuesInsertable({
@ -27980,6 +28251,8 @@ class WorkoutTemplateExerciseOverridesCompanion
'target_score_override': targetScoreOverride,
if (targetScoreTimeMsOverride != null)
'target_score_time_ms_override': targetScoreTimeMsOverride,
if (autoStartNextTimedStepOverride != null)
'auto_start_next_timed_step_override': autoStartNextTimedStepOverride,
if (rowid != null) 'rowid': rowid,
});
}
@ -28003,6 +28276,7 @@ class WorkoutTemplateExerciseOverridesCompanion
Value<int?>? targetRepsOverride,
Value<double?>? targetScoreOverride,
Value<int?>? targetScoreTimeMsOverride,
Value<bool?>? autoStartNextTimedStepOverride,
Value<int>? rowid,
}) {
return WorkoutTemplateExerciseOverridesCompanion(
@ -28028,6 +28302,8 @@ class WorkoutTemplateExerciseOverridesCompanion
targetScoreOverride: targetScoreOverride ?? this.targetScoreOverride,
targetScoreTimeMsOverride:
targetScoreTimeMsOverride ?? this.targetScoreTimeMsOverride,
autoStartNextTimedStepOverride:
autoStartNextTimedStepOverride ?? this.autoStartNextTimedStepOverride,
rowid: rowid ?? this.rowid,
);
}
@ -28101,6 +28377,11 @@ class WorkoutTemplateExerciseOverridesCompanion
targetScoreTimeMsOverride.value,
);
}
if (autoStartNextTimedStepOverride.present) {
map['auto_start_next_timed_step_override'] = Variable<bool>(
autoStartNextTimedStepOverride.value,
);
}
if (rowid.present) {
map['rowid'] = Variable<int>(rowid.value);
}
@ -28128,6 +28409,9 @@ class WorkoutTemplateExerciseOverridesCompanion
..write('targetRepsOverride: $targetRepsOverride, ')
..write('targetScoreOverride: $targetScoreOverride, ')
..write('targetScoreTimeMsOverride: $targetScoreTimeMsOverride, ')
..write(
'autoStartNextTimedStepOverride: $autoStartNextTimedStepOverride, ',
)
..write('rowid: $rowid')
..write(')'))
.toString();
@ -35424,6 +35708,7 @@ typedef $$ExercisesTableCreateCompanionBuilder =
Value<int?> defaultTargetReps,
Value<double?> defaultTargetScore,
Value<int?> defaultTargetScoreTimeMs,
Value<bool> autoStartNextTimedStep,
Value<DateTime?> archivedAt,
Value<int> rowid,
});
@ -35454,6 +35739,7 @@ typedef $$ExercisesTableUpdateCompanionBuilder =
Value<int?> defaultTargetReps,
Value<double?> defaultTargetScore,
Value<int?> defaultTargetScoreTimeMs,
Value<bool> autoStartNextTimedStep,
Value<DateTime?> archivedAt,
Value<int> rowid,
});
@ -35677,6 +35963,11 @@ class $$ExercisesTableFilterComposer
builder: (column) => ColumnFilters(column),
);
ColumnFilters<bool> get autoStartNextTimedStep => $composableBuilder(
column: $table.autoStartNextTimedStep,
builder: (column) => ColumnFilters(column),
);
ColumnFilters<DateTime> get archivedAt => $composableBuilder(
column: $table.archivedAt,
builder: (column) => ColumnFilters(column),
@ -35928,6 +36219,11 @@ class $$ExercisesTableOrderingComposer
builder: (column) => ColumnOrderings(column),
);
ColumnOrderings<bool> get autoStartNextTimedStep => $composableBuilder(
column: $table.autoStartNextTimedStep,
builder: (column) => ColumnOrderings(column),
);
ColumnOrderings<DateTime> get archivedAt => $composableBuilder(
column: $table.archivedAt,
builder: (column) => ColumnOrderings(column),
@ -36090,6 +36386,11 @@ class $$ExercisesTableAnnotationComposer
builder: (column) => column,
);
GeneratedColumn<bool> get autoStartNextTimedStep => $composableBuilder(
column: $table.autoStartNextTimedStep,
builder: (column) => column,
);
GeneratedColumn<DateTime> get archivedAt => $composableBuilder(
column: $table.archivedAt,
builder: (column) => column,
@ -36276,6 +36577,7 @@ class $$ExercisesTableTableManager
Value<int?> defaultTargetReps = const Value.absent(),
Value<double?> defaultTargetScore = const Value.absent(),
Value<int?> defaultTargetScoreTimeMs = const Value.absent(),
Value<bool> autoStartNextTimedStep = const Value.absent(),
Value<DateTime?> archivedAt = const Value.absent(),
Value<int> rowid = const Value.absent(),
}) => ExercisesCompanion(
@ -36304,6 +36606,7 @@ class $$ExercisesTableTableManager
defaultTargetReps: defaultTargetReps,
defaultTargetScore: defaultTargetScore,
defaultTargetScoreTimeMs: defaultTargetScoreTimeMs,
autoStartNextTimedStep: autoStartNextTimedStep,
archivedAt: archivedAt,
rowid: rowid,
),
@ -36334,6 +36637,7 @@ class $$ExercisesTableTableManager
Value<int?> defaultTargetReps = const Value.absent(),
Value<double?> defaultTargetScore = const Value.absent(),
Value<int?> defaultTargetScoreTimeMs = const Value.absent(),
Value<bool> autoStartNextTimedStep = const Value.absent(),
Value<DateTime?> archivedAt = const Value.absent(),
Value<int> rowid = const Value.absent(),
}) => ExercisesCompanion.insert(
@ -36362,6 +36666,7 @@ class $$ExercisesTableTableManager
defaultTargetReps: defaultTargetReps,
defaultTargetScore: defaultTargetScore,
defaultTargetScoreTimeMs: defaultTargetScoreTimeMs,
autoStartNextTimedStep: autoStartNextTimedStep,
archivedAt: archivedAt,
rowid: rowid,
),
@ -39001,6 +39306,8 @@ typedef $$ProgramExercisesTableCreateCompanionBuilder =
Value<String?> exerciseImageMediaIdSnapshot,
Value<String?> exerciseImageMediaIdsSnapshotJson,
Value<String?> exerciseStepsSnapshotJson,
Value<bool> autoStartNextTimedStepSnapshot,
Value<bool?> autoStartNextTimedStepOverride,
Value<String?> exerciseVideoMediaIdSnapshot,
Value<bool> exerciseArchivedSnapshot,
required bool availableTimeSnapshot,
@ -39041,6 +39348,8 @@ typedef $$ProgramExercisesTableUpdateCompanionBuilder =
Value<String?> exerciseImageMediaIdSnapshot,
Value<String?> exerciseImageMediaIdsSnapshotJson,
Value<String?> exerciseStepsSnapshotJson,
Value<bool> autoStartNextTimedStepSnapshot,
Value<bool?> autoStartNextTimedStepOverride,
Value<String?> exerciseVideoMediaIdSnapshot,
Value<bool> exerciseArchivedSnapshot,
Value<bool> availableTimeSnapshot,
@ -39240,6 +39549,16 @@ class $$ProgramExercisesTableFilterComposer
builder: (column) => ColumnFilters(column),
);
ColumnFilters<bool> get autoStartNextTimedStepSnapshot => $composableBuilder(
column: $table.autoStartNextTimedStepSnapshot,
builder: (column) => ColumnFilters(column),
);
ColumnFilters<bool> get autoStartNextTimedStepOverride => $composableBuilder(
column: $table.autoStartNextTimedStepOverride,
builder: (column) => ColumnFilters(column),
);
ColumnFilters<bool> get exerciseArchivedSnapshot => $composableBuilder(
column: $table.exerciseArchivedSnapshot,
builder: (column) => ColumnFilters(column),
@ -39503,6 +39822,18 @@ class $$ProgramExercisesTableOrderingComposer
builder: (column) => ColumnOrderings(column),
);
ColumnOrderings<bool> get autoStartNextTimedStepSnapshot =>
$composableBuilder(
column: $table.autoStartNextTimedStepSnapshot,
builder: (column) => ColumnOrderings(column),
);
ColumnOrderings<bool> get autoStartNextTimedStepOverride =>
$composableBuilder(
column: $table.autoStartNextTimedStepOverride,
builder: (column) => ColumnOrderings(column),
);
ColumnOrderings<bool> get exerciseArchivedSnapshot => $composableBuilder(
column: $table.exerciseArchivedSnapshot,
builder: (column) => ColumnOrderings(column),
@ -39754,6 +40085,18 @@ class $$ProgramExercisesTableAnnotationComposer
builder: (column) => column,
);
GeneratedColumn<bool> get autoStartNextTimedStepSnapshot =>
$composableBuilder(
column: $table.autoStartNextTimedStepSnapshot,
builder: (column) => column,
);
GeneratedColumn<bool> get autoStartNextTimedStepOverride =>
$composableBuilder(
column: $table.autoStartNextTimedStepOverride,
builder: (column) => column,
);
GeneratedColumn<bool> get exerciseArchivedSnapshot => $composableBuilder(
column: $table.exerciseArchivedSnapshot,
builder: (column) => column,
@ -39982,6 +40325,10 @@ class $$ProgramExercisesTableTableManager
Value<String?> exerciseImageMediaIdsSnapshotJson =
const Value.absent(),
Value<String?> exerciseStepsSnapshotJson = const Value.absent(),
Value<bool> autoStartNextTimedStepSnapshot =
const Value.absent(),
Value<bool?> autoStartNextTimedStepOverride =
const Value.absent(),
Value<String?> exerciseVideoMediaIdSnapshot =
const Value.absent(),
Value<bool> exerciseArchivedSnapshot = const Value.absent(),
@ -40022,6 +40369,8 @@ class $$ProgramExercisesTableTableManager
exerciseImageMediaIdsSnapshotJson:
exerciseImageMediaIdsSnapshotJson,
exerciseStepsSnapshotJson: exerciseStepsSnapshotJson,
autoStartNextTimedStepSnapshot: autoStartNextTimedStepSnapshot,
autoStartNextTimedStepOverride: autoStartNextTimedStepOverride,
exerciseVideoMediaIdSnapshot: exerciseVideoMediaIdSnapshot,
exerciseArchivedSnapshot: exerciseArchivedSnapshot,
availableTimeSnapshot: availableTimeSnapshot,
@ -40065,6 +40414,10 @@ class $$ProgramExercisesTableTableManager
Value<String?> exerciseImageMediaIdsSnapshotJson =
const Value.absent(),
Value<String?> exerciseStepsSnapshotJson = const Value.absent(),
Value<bool> autoStartNextTimedStepSnapshot =
const Value.absent(),
Value<bool?> autoStartNextTimedStepOverride =
const Value.absent(),
Value<String?> exerciseVideoMediaIdSnapshot =
const Value.absent(),
Value<bool> exerciseArchivedSnapshot = const Value.absent(),
@ -40105,6 +40458,8 @@ class $$ProgramExercisesTableTableManager
exerciseImageMediaIdsSnapshotJson:
exerciseImageMediaIdsSnapshotJson,
exerciseStepsSnapshotJson: exerciseStepsSnapshotJson,
autoStartNextTimedStepSnapshot: autoStartNextTimedStepSnapshot,
autoStartNextTimedStepOverride: autoStartNextTimedStepOverride,
exerciseVideoMediaIdSnapshot: exerciseVideoMediaIdSnapshot,
exerciseArchivedSnapshot: exerciseArchivedSnapshot,
availableTimeSnapshot: availableTimeSnapshot,
@ -44787,6 +45142,7 @@ typedef $$WorkoutTemplateExerciseOverridesTableCreateCompanionBuilder =
Value<int?> targetRepsOverride,
Value<double?> targetScoreOverride,
Value<int?> targetScoreTimeMsOverride,
Value<bool?> autoStartNextTimedStepOverride,
Value<int> rowid,
});
typedef $$WorkoutTemplateExerciseOverridesTableUpdateCompanionBuilder =
@ -44809,6 +45165,7 @@ typedef $$WorkoutTemplateExerciseOverridesTableUpdateCompanionBuilder =
Value<int?> targetRepsOverride,
Value<double?> targetScoreOverride,
Value<int?> targetScoreTimeMsOverride,
Value<bool?> autoStartNextTimedStepOverride,
Value<int> rowid,
});
@ -44943,6 +45300,11 @@ class $$WorkoutTemplateExerciseOverridesTableFilterComposer
builder: (column) => ColumnFilters(column),
);
ColumnFilters<bool> get autoStartNextTimedStepOverride => $composableBuilder(
column: $table.autoStartNextTimedStepOverride,
builder: (column) => ColumnFilters(column),
);
$$WorkoutTemplateProgramsTableFilterComposer get workoutTemplateProgramId {
final $$WorkoutTemplateProgramsTableFilterComposer composer =
$composerBuilder(
@ -45062,6 +45424,12 @@ class $$WorkoutTemplateExerciseOverridesTableOrderingComposer
builder: (column) => ColumnOrderings(column),
);
ColumnOrderings<bool> get autoStartNextTimedStepOverride =>
$composableBuilder(
column: $table.autoStartNextTimedStepOverride,
builder: (column) => ColumnOrderings(column),
);
$$WorkoutTemplateProgramsTableOrderingComposer get workoutTemplateProgramId {
final $$WorkoutTemplateProgramsTableOrderingComposer composer =
$composerBuilder(
@ -45171,6 +45539,12 @@ class $$WorkoutTemplateExerciseOverridesTableAnnotationComposer
builder: (column) => column,
);
GeneratedColumn<bool> get autoStartNextTimedStepOverride =>
$composableBuilder(
column: $table.autoStartNextTimedStepOverride,
builder: (column) => column,
);
$$WorkoutTemplateProgramsTableAnnotationComposer
get workoutTemplateProgramId {
final $$WorkoutTemplateProgramsTableAnnotationComposer composer =
@ -45257,6 +45631,8 @@ class $$WorkoutTemplateExerciseOverridesTableTableManager
Value<int?> targetRepsOverride = const Value.absent(),
Value<double?> targetScoreOverride = const Value.absent(),
Value<int?> targetScoreTimeMsOverride = const Value.absent(),
Value<bool?> autoStartNextTimedStepOverride =
const Value.absent(),
Value<int> rowid = const Value.absent(),
}) => WorkoutTemplateExerciseOverridesCompanion(
id: id,
@ -45277,6 +45653,7 @@ class $$WorkoutTemplateExerciseOverridesTableTableManager
targetRepsOverride: targetRepsOverride,
targetScoreOverride: targetScoreOverride,
targetScoreTimeMsOverride: targetScoreTimeMsOverride,
autoStartNextTimedStepOverride: autoStartNextTimedStepOverride,
rowid: rowid,
),
createCompanionCallback:
@ -45299,6 +45676,8 @@ class $$WorkoutTemplateExerciseOverridesTableTableManager
Value<int?> targetRepsOverride = const Value.absent(),
Value<double?> targetScoreOverride = const Value.absent(),
Value<int?> targetScoreTimeMsOverride = const Value.absent(),
Value<bool?> autoStartNextTimedStepOverride =
const Value.absent(),
Value<int> rowid = const Value.absent(),
}) => WorkoutTemplateExerciseOverridesCompanion.insert(
id: id,
@ -45319,6 +45698,7 @@ class $$WorkoutTemplateExerciseOverridesTableTableManager
targetRepsOverride: targetRepsOverride,
targetScoreOverride: targetScoreOverride,
targetScoreTimeMsOverride: targetScoreTimeMsOverride,
autoStartNextTimedStepOverride: autoStartNextTimedStepOverride,
rowid: rowid,
),
withReferenceMapper: (p0) => p0

View File

@ -1881,6 +1881,7 @@ db.ExercisesCompanion _exerciseCompanion(domain.Exercise exercise) {
defaultTargetReps: Value(exercise.defaultTargetReps),
defaultTargetScore: Value(exercise.defaultTargetScore),
defaultTargetScoreTimeMs: Value(exercise.defaultTargetScoreTimeMs),
autoStartNextTimedStep: Value(exercise.autoStartNextTimedStep),
archivedAt: Value(_utcOrNull(exercise.archivedAt)),
);
}
@ -1907,6 +1908,7 @@ domain.Exercise _exerciseFromRow(
defaultTargetReps: row.defaultTargetReps,
defaultTargetScore: row.defaultTargetScore,
defaultTargetScoreTimeMs: row.defaultTargetScoreTimeMs,
autoStartNextTimedStep: row.autoStartNextTimedStep,
steps: steps,
archivedAt: _utcOrNull(row.archivedAt),
);
@ -2132,6 +2134,12 @@ db.ProgramExercisesCompanion _programExerciseCompanion(
exerciseStepsSnapshotJson: Value(
_encodeExerciseStepsSnapshot(exercise.exerciseStepsSnapshot),
),
autoStartNextTimedStepSnapshot: Value(
exercise.autoStartNextTimedStepSnapshot,
),
autoStartNextTimedStepOverride: Value(
exercise.autoStartNextTimedStepOverride,
),
exerciseVideoMediaIdSnapshot: Value(exercise.exerciseVideoMediaIdSnapshot),
exerciseArchivedSnapshot: Value(exercise.exerciseArchivedSnapshot),
availableTimeSnapshot: Value(exercise.availableTimeSnapshot),
@ -2170,6 +2178,8 @@ domain.ProgramExercise _programExerciseFromRow(db.ProgramExercise row) {
exerciseStepsSnapshot: _decodeExerciseStepsSnapshot(
row.exerciseStepsSnapshotJson,
),
autoStartNextTimedStepSnapshot: row.autoStartNextTimedStepSnapshot,
autoStartNextTimedStepOverride: row.autoStartNextTimedStepOverride,
exerciseVideoMediaIdSnapshot: row.exerciseVideoMediaIdSnapshot,
exerciseArchivedSnapshot: row.exerciseArchivedSnapshot,
availableTimeSnapshot: row.availableTimeSnapshot,
@ -2288,6 +2298,9 @@ _workoutTemplateExerciseOverrideCompanion(
targetRepsOverride: Value(override.targetRepsOverride),
targetScoreOverride: Value(override.targetScoreOverride),
targetScoreTimeMsOverride: Value(override.targetScoreTimeMsOverride),
autoStartNextTimedStepOverride: Value(
override.autoStartNextTimedStepOverride,
),
);
}
@ -2303,6 +2316,7 @@ domain.WorkoutTemplateExerciseOverride _workoutTemplateExerciseOverrideFromRow(
targetRepsOverride: row.targetRepsOverride,
targetScoreOverride: row.targetScoreOverride,
targetScoreTimeMsOverride: row.targetScoreTimeMsOverride,
autoStartNextTimedStepOverride: row.autoStartNextTimedStepOverride,
);
}
@ -2933,6 +2947,7 @@ Map<String, Object?> _exercisePayload(domain.Exercise exercise) => {
'defaultTargetReps': exercise.defaultTargetReps,
'defaultTargetScore': exercise.defaultTargetScore,
'defaultTargetScoreTimeMs': exercise.defaultTargetScoreTimeMs,
'autoStartNextTimedStep': exercise.autoStartNextTimedStep,
'steps': exercise.steps.map((step) => step.toSnapshotJson()).toList(),
'archivedAt': exercise.archivedAt?.toUtc().toIso8601String(),
};
@ -2991,6 +3006,8 @@ Map<String, Object?> _workoutTemplatePayload(domain.WorkoutTemplate template) =>
'targetRepsOverride': override.targetRepsOverride,
'targetScoreOverride': override.targetScoreOverride,
'targetScoreTimeMsOverride': override.targetScoreTimeMsOverride,
'autoStartNextTimedStepOverride':
override.autoStartNextTimedStepOverride,
},
)
.toList(),
@ -3030,6 +3047,8 @@ domain.Exercise _exerciseFromPayload(RemoteSyncedItem item) {
defaultTargetReps: payload['defaultTargetReps'] as int?,
defaultTargetScore: (payload['defaultTargetScore'] as num?)?.toDouble(),
defaultTargetScoreTimeMs: payload['defaultTargetScoreTimeMs'] as int?,
autoStartNextTimedStep:
payload['autoStartNextTimedStep'] as bool? ?? true,
steps: _stepsFromPayload(payload['steps']),
archivedAt: _dateTimeFromPayload(payload['archivedAt']),
);
@ -3133,6 +3152,10 @@ List<domain.ProgramExercise> _programExercisesFromPayload(
exerciseStepsSnapshot: _stepsFromPayload(
map['exerciseStepsSnapshot'],
),
autoStartNextTimedStepSnapshot:
map['autoStartNextTimedStepSnapshot'] as bool? ?? true,
autoStartNextTimedStepOverride:
map['autoStartNextTimedStepOverride'] as bool?,
exerciseArchivedSnapshot: map['exerciseArchivedSnapshot'] == true,
availableTimeSnapshot: map['availableTimeSnapshot'] == true,
availableRepsSnapshot: map['availableRepsSnapshot'] == true,
@ -3217,6 +3240,8 @@ _workoutTemplateOverridesFromPayload(
targetRepsOverride: map['targetRepsOverride'] as int?,
targetScoreOverride: (map['targetScoreOverride'] as num?)?.toDouble(),
targetScoreTimeMsOverride: map['targetScoreTimeMsOverride'] as int?,
autoStartNextTimedStepOverride:
map['autoStartNextTimedStepOverride'] as bool?,
);
})
.toList(growable: false);

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 => [