SendTrain/lib/daos/activities_dao.dart
2024-12-20 14:19:17 -05:00

35 lines
968 B
Dart

import 'package:drift/drift.dart';
import 'package:sendtrain/database/database.dart';
part 'activities_dao.g.dart';
@DriftAccessor(tables: [Activities])
class ActivitiesDao extends DatabaseAccessor<AppDatabase> with _$ActivitiesDaoMixin {
ActivitiesDao(super.db);
Future<List<Activity>> all() async {
return await select(activities).get();
}
Future<List<Activity>> find(int id) async {
return await (select(activities)..where((activity) => activity.id.equals(id) )).get();
}
Future<List<Activity>> sessionActivities(int id) async {
final result = select(db.sessionActivities).join(
[
innerJoin(
db.activities,
db.activities.id
.equalsExp(db.sessionActivities.activityId),
),
],
)..where(db.sessionActivities.sessionId.equals(id));
final activities = (await result.get())
.map((e) => e.readTable(db.activities))
.toList();
return activities;
}
}