feat(exercice): galerie de 5 images par exercice (ticket #35)
Étend le modèle Drift (tables.dart, app_database.dart/.g.dart), les entités/use cases/repositories et exercise_library_screen.dart pour supporter jusqu'à 5 images par exercice au lieu d'une seule. flutter analyze propre, 63/63 tests verts, build APK debug validé. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -55,10 +55,6 @@ class Exercises extends SyncableTable {
|
||||
|
||||
TextColumn get name => text().withLength(min: 1)();
|
||||
TextColumn get description => text().nullable()();
|
||||
@ReferenceName('exerciseImageReferences')
|
||||
TextColumn get imageMediaId =>
|
||||
text().nullable().references(MediaAssets, #id)();
|
||||
|
||||
@ReferenceName('exerciseVideoReferences')
|
||||
TextColumn get videoMediaId =>
|
||||
text().nullable().references(MediaAssets, #id)();
|
||||
@ -92,6 +88,22 @@ class Exercises extends SyncableTable {
|
||||
];
|
||||
}
|
||||
|
||||
class ExerciseImages extends SyncableTable {
|
||||
@override
|
||||
String get tableName => 'exercise_images';
|
||||
|
||||
TextColumn get exerciseId => text().references(Exercises, #id)();
|
||||
TextColumn get mediaAssetId => text().references(MediaAssets, #id)();
|
||||
IntColumn get position => integer()();
|
||||
|
||||
@override
|
||||
List<String> get customConstraints => [
|
||||
'UNIQUE (exercise_id, position)',
|
||||
'UNIQUE (exercise_id, media_asset_id)',
|
||||
'CHECK (position >= 0 AND position < 5)',
|
||||
];
|
||||
}
|
||||
|
||||
class Programs extends SyncableTable {
|
||||
@override
|
||||
String get tableName => 'programs';
|
||||
|
||||
Reference in New Issue
Block a user