import 'package:drift/drift.dart'; import 'package:sendtrain/database/database.dart'; part 'actions_dao.g.dart'; @DriftAccessor(tables: [Actions]) class ActionsDao extends DatabaseAccessor with _$ActionsDaoMixin { ActionsDao(super.db); Future> all() async { return await select(actions).get(); } Future find(int id) async { return await (select(actions)..where((action) => action.id.equals(id) )).getSingle(); } Future> fromActivity(Activity activity) async { final result = select(db.activityActions).join( [ innerJoin( db.actions, db.actions.id.equalsExp(db.activityActions.actionId), ), ], ) ..where(db.activityActions.activityId.equals(activity.id)); final actions = (await result.get()) .map((e) => e.readTable(db.actions)) .toList(); return actions; } Future createOrUpdate(ActionsCompanion action) => into(actions).insertOnConflictUpdate(action); }