feat(online): partage client - use cases, inbox cache et import local (ticket #66)
Ajoute l'adapter API distant de partage (infrastructure/remote/share_api.dart) et les use cases associés (application/use_cases.dart), avec cache d'inbox et import local des ressources partagées acceptées. Étend le modèle Drift (migration schemaVersion 11→12) et les entités du domaine en conséquence. flutter pub get OK, build_runner OK, dart format appliqué, analyze propre (mêmes infos préexistantes), 124/124 tests verts, build APK debug validé. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -19,9 +19,11 @@ part 'app_database.g.dart';
|
||||
ExerciseSteps,
|
||||
MediaAssets,
|
||||
OnlineAccountSessions,
|
||||
PendingShareActions,
|
||||
ProgramExercises,
|
||||
Programs,
|
||||
RemoteResourceMappings,
|
||||
ShareInboxItems,
|
||||
SyncMetadataEntries,
|
||||
WorkoutHistories,
|
||||
WorkoutHistorySetResults,
|
||||
@ -44,7 +46,7 @@ final class AppDatabase extends _$AppDatabase {
|
||||
}
|
||||
|
||||
@override
|
||||
int get schemaVersion => 11;
|
||||
int get schemaVersion => 12;
|
||||
|
||||
@override
|
||||
MigrationStrategy get migration {
|
||||
@ -92,6 +94,9 @@ final class AppDatabase extends _$AppDatabase {
|
||||
if (from < 11) {
|
||||
await _migrateToSchema11(migrator);
|
||||
}
|
||||
if (from < 12) {
|
||||
await _migrateToSchema12(migrator);
|
||||
}
|
||||
await _createIndexes();
|
||||
},
|
||||
beforeOpen: (details) async {
|
||||
@ -140,6 +145,14 @@ final class AppDatabase extends _$AppDatabase {
|
||||
'CREATE INDEX IF NOT EXISTS idx_remote_resource_mappings_resource '
|
||||
'ON remote_resource_mappings (resource_type, client_id)',
|
||||
);
|
||||
await customStatement(
|
||||
'CREATE INDEX IF NOT EXISTS idx_share_inbox_items_created_at '
|
||||
'ON share_inbox_items (created_at)',
|
||||
);
|
||||
await customStatement(
|
||||
'CREATE INDEX IF NOT EXISTS idx_pending_share_actions_status '
|
||||
'ON pending_share_actions (status, created_at)',
|
||||
);
|
||||
await customStatement(
|
||||
'CREATE INDEX IF NOT EXISTS idx_workout_template_programs_template_id '
|
||||
'ON workout_template_programs (workout_template_id)',
|
||||
@ -341,4 +354,9 @@ extension on AppDatabase {
|
||||
await migrator.createTable(syncMetadataEntries);
|
||||
await migrator.createTable(remoteResourceMappings);
|
||||
}
|
||||
|
||||
Future<void> _migrateToSchema12(Migrator migrator) async {
|
||||
await migrator.createTable(shareInboxItems);
|
||||
await migrator.createTable(pendingShareActions);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user