import 'package:drift/drift.dart'; import 'package:trainhub_flutter/data/database/app_database.dart'; part 'analysis_dao.g.dart'; @DriftAccessor(tables: [AnalysisSessions, Annotations]) class AnalysisDao extends DatabaseAccessor with _$AnalysisDaoMixin { AnalysisDao(super.db); Future> getAllSessions() => select(analysisSessions).get(); Future getSession(String id) => (select(analysisSessions)..where((t) => t.id.equals(id))) .getSingleOrNull(); Future insertSession(AnalysisSessionsCompanion entry) => into(analysisSessions).insert(entry); Future deleteSession(String id) => (delete(analysisSessions)..where((t) => t.id.equals(id))).go(); Future> getAnnotations(String sessionId) => (select(annotations)..where((t) => t.sessionId.equals(sessionId))).get(); Future insertAnnotation(AnnotationsCompanion entry) => into(annotations).insert(entry); Future updateAnnotation({ required String id, required String name, required String description, required String color, }) => (update(annotations)..where((t) => t.id.equals(id))).write( AnnotationsCompanion( name: Value(name), description: Value(description), color: Value(color), ), ); Future deleteAnnotation(String id) => (delete(annotations)..where((t) => t.id.equals(id))).go(); }