feat(server): implemente synchronisation et serveur avec fixtures (#187)
- Implémente la couche de synchronisation avec le serveur - Ajoute les fixtures versionnées pour les tests - Met à jour Drift database et repositories pour le support sync - Améliore les tests de synchronisation - Corrige et améliore le watch companion pour la collecte de métriques Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -804,6 +804,48 @@ class WorkoutTelemetrySamples extends Table {
|
||||
];
|
||||
}
|
||||
|
||||
class ActiveWorkoutTelemetryWindowStates extends Table {
|
||||
@override
|
||||
String get tableName => 'active_workout_telemetry_window_states';
|
||||
|
||||
TextColumn get sessionId => text().references(
|
||||
ActiveWorkoutSessions,
|
||||
#id,
|
||||
onDelete: KeyAction.cascade,
|
||||
)();
|
||||
IntColumn get windowStartedActiveMs => integer()();
|
||||
DateTimeColumn get latestCapturedAt => dateTime()();
|
||||
IntColumn get programIndex => integer().nullable()();
|
||||
IntColumn get exerciseIndex => integer().nullable()();
|
||||
IntColumn get setIndex => integer().nullable()();
|
||||
IntColumn get passageIndex => integer().nullable()();
|
||||
IntColumn get stepIndex => integer().nullable()();
|
||||
TextColumn get programSnapshotId => text().nullable()();
|
||||
TextColumn get exerciseSnapshotId => text().nullable()();
|
||||
TextColumn get stepSnapshotId => text().nullable()();
|
||||
IntColumn get heartRateBpm => integer().nullable()();
|
||||
RealColumn get distanceMeters => real().nullable()();
|
||||
RealColumn get caloriesKcal => real().nullable()();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {sessionId};
|
||||
|
||||
@override
|
||||
List<String> get customConstraints => [
|
||||
'CHECK (window_started_active_ms >= 0)',
|
||||
'CHECK (program_index IS NULL OR program_index >= 0)',
|
||||
'CHECK (exercise_index IS NULL OR exercise_index >= 0)',
|
||||
'CHECK (set_index IS NULL OR set_index >= 0)',
|
||||
'CHECK (passage_index IS NULL OR passage_index >= 0)',
|
||||
'CHECK (step_index IS NULL OR step_index >= 0)',
|
||||
'CHECK (heart_rate_bpm IS NULL OR heart_rate_bpm > 0)',
|
||||
'CHECK (distance_meters IS NULL OR distance_meters >= 0)',
|
||||
'CHECK (calories_kcal IS NULL OR calories_kcal >= 0)',
|
||||
'CHECK (heart_rate_bpm IS NOT NULL OR distance_meters IS NOT NULL OR '
|
||||
'calories_kcal IS NOT NULL)',
|
||||
];
|
||||
}
|
||||
|
||||
class WorkoutTelemetryAggregates extends Table {
|
||||
@override
|
||||
String get tableName => 'workout_telemetry_aggregates';
|
||||
|
||||
Reference in New Issue
Block a user