feat(application): couche application avec use cases et repositories
Ajoute les entités du domaine (domain/entities.dart), les ports de repository (application/ports.dart), les use cases (application/use_cases.dart) et leur implémentation Drift (infrastructure/local/drift_repositories.dart). flutter analyze propre, tests unitaires verts, build APK debug validé. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
49
lib/application/ports.dart
Normal file
49
lib/application/ports.dart
Normal file
@ -0,0 +1,49 @@
|
||||
import '../domain/domain.dart';
|
||||
|
||||
abstract interface class Clock {
|
||||
DateTime now();
|
||||
}
|
||||
|
||||
final class SystemClock implements Clock {
|
||||
const SystemClock();
|
||||
|
||||
@override
|
||||
DateTime now() => DateTime.now().toUtc();
|
||||
}
|
||||
|
||||
abstract interface class IdGenerator {
|
||||
String newId();
|
||||
}
|
||||
|
||||
abstract interface class ExerciseRepository {
|
||||
Future<Exercise?> findById(String id);
|
||||
Future<List<Exercise>> listActive();
|
||||
Future<void> save(Exercise exercise);
|
||||
}
|
||||
|
||||
abstract interface class ProgramRepository {
|
||||
Future<Program?> findById(String id);
|
||||
Future<void> save(Program program);
|
||||
Future<void> saveExercise(ProgramExercise exercise);
|
||||
}
|
||||
|
||||
abstract interface class WorkoutTemplateRepository {
|
||||
Future<WorkoutTemplate?> findById(String id);
|
||||
Future<void> save(WorkoutTemplate template);
|
||||
Future<void> saveProgram(WorkoutTemplateProgram program);
|
||||
Future<void> saveOverride(WorkoutTemplateExerciseOverride override);
|
||||
}
|
||||
|
||||
abstract interface class ActiveSessionRepository {
|
||||
Future<ActiveWorkoutSession?> findById(String id);
|
||||
Future<void> save(ActiveWorkoutSession session);
|
||||
Future<void> saveSetResult(ActiveSetResult result);
|
||||
Future<void> saveRestState(ActiveRestState restState);
|
||||
Future<List<ActiveSetResult>> listSetResults(String sessionId);
|
||||
Future<List<ActiveRestState>> listRestStates(String sessionId);
|
||||
}
|
||||
|
||||
abstract interface class WorkoutHistoryRepository {
|
||||
Future<void> save(WorkoutHistory history);
|
||||
Future<void> saveSetResult(WorkoutHistorySetResult result);
|
||||
}
|
||||
Reference in New Issue
Block a user