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:
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user