Initial commit
This commit is contained in:
60
lib/data/database/daos/program_dao.dart
Normal file
60
lib/data/database/daos/program_dao.dart
Normal file
@@ -0,0 +1,60 @@
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:trainhub_flutter/data/database/app_database.dart';
|
||||
|
||||
part 'program_dao.g.dart';
|
||||
|
||||
@DriftAccessor(tables: [Programs, ProgramWeeks, ProgramWorkouts])
|
||||
class ProgramDao extends DatabaseAccessor<AppDatabase>
|
||||
with _$ProgramDaoMixin {
|
||||
ProgramDao(super.db);
|
||||
|
||||
Future<List<Program>> getAllPrograms() =>
|
||||
(select(programs)
|
||||
..orderBy([
|
||||
(t) =>
|
||||
OrderingTerm(expression: t.createdAt, mode: OrderingMode.desc)
|
||||
]))
|
||||
.get();
|
||||
|
||||
Future<Program?> getProgram(String id) =>
|
||||
(select(programs)..where((t) => t.id.equals(id))).getSingleOrNull();
|
||||
|
||||
Future<void> insertProgram(ProgramsCompanion entry) =>
|
||||
into(programs).insert(entry);
|
||||
|
||||
Future<void> deleteProgram(String id) =>
|
||||
(delete(programs)..where((t) => t.id.equals(id))).go();
|
||||
|
||||
Future<List<ProgramWeek>> getWeeks(String programId) =>
|
||||
(select(programWeeks)
|
||||
..where((t) => t.programId.equals(programId))
|
||||
..orderBy([(t) => OrderingTerm(expression: t.position)]))
|
||||
.get();
|
||||
|
||||
Future<void> insertWeek(ProgramWeeksCompanion entry) =>
|
||||
into(programWeeks).insert(entry);
|
||||
|
||||
Future<void> deleteWeek(String id) =>
|
||||
(delete(programWeeks)..where((t) => t.id.equals(id))).go();
|
||||
|
||||
Future<void> updateWeekNote(String weekId, String note) =>
|
||||
(update(programWeeks)..where((t) => t.id.equals(weekId)))
|
||||
.write(ProgramWeeksCompanion(notes: Value(note)));
|
||||
|
||||
Future<List<ProgramWorkout>> getWorkouts(String programId) =>
|
||||
(select(programWorkouts)..where((t) => t.programId.equals(programId)))
|
||||
.get();
|
||||
|
||||
Future<void> insertWorkout(ProgramWorkoutsCompanion entry) =>
|
||||
into(programWorkouts).insert(entry);
|
||||
|
||||
Future<void> updateWorkout(String id, ProgramWorkoutsCompanion entry) =>
|
||||
(update(programWorkouts)..where((t) => t.id.equals(id))).write(entry);
|
||||
|
||||
Future<void> deleteWorkout(String id) =>
|
||||
(delete(programWorkouts)..where((t) => t.id.equals(id))).go();
|
||||
|
||||
Future<void> toggleWorkoutComplete(String id, bool currentStatus) =>
|
||||
(update(programWorkouts)..where((t) => t.id.equals(id)))
|
||||
.write(ProgramWorkoutsCompanion(completed: Value(!currentStatus)));
|
||||
}
|
||||
Reference in New Issue
Block a user