feat(media): gestion des médias locaux

Ajoute le stockage local des médias (infrastructure/local/local_media_storage.dart)
et les use cases/ports associés. flutter analyze propre, 7/7 tests
unitaires verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 18:31:28 +02:00
parent 2499a95e08
commit c77006f322
6 changed files with 591 additions and 0 deletions

View File

@ -21,6 +21,41 @@ abstract interface class ExerciseRepository {
Future<void> save(Exercise exercise);
}
final class StoredMediaFile {
const StoredMediaFile({
required this.localUri,
required this.mimeType,
required this.sizeBytes,
this.width,
this.height,
this.durationMs,
});
final String localUri;
final String? mimeType;
final int sizeBytes;
final int? width;
final int? height;
final int? durationMs;
}
abstract interface class LocalMediaStorage {
Future<StoredMediaFile> importFile({
required String sourcePath,
required MediaKind kind,
required String stableFileName,
});
Future<Set<String>> listManagedLocalUris();
Future<void> deleteByLocalUri(String localUri);
}
abstract interface class MediaAssetRepository {
Future<MediaAsset?> findById(String id);
Future<List<MediaAsset>> listActive();
Future<void> save(MediaAsset mediaAsset);
}
abstract interface class ProgramRepository {
Future<Program?> findById(String id);
Future<void> save(Program program);