35 lines
968 B
Dart
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;
|
|
}
|
|
} |