media item and session images and location management, also refactoring and DRYing up code

This commit is contained in:
Joshua Burman
2024-12-31 22:41:17 -05:00
parent 5f628d6b48
commit 10332ec8be
17 changed files with 328 additions and 129 deletions

View File

@ -39,7 +39,7 @@ class MediaItemsDao extends DatabaseAccessor<AppDatabase>
return mediaItems;
}
Future<List<MediaItem>> fromSession(Session session) async {
Future<List<MediaItem>> fromSession(int sessionId) async {
final result = select(db.objectMediaItems).join(
[
innerJoin(
@ -49,7 +49,7 @@ class MediaItemsDao extends DatabaseAccessor<AppDatabase>
],
)
..where(db.objectMediaItems.objectType.equals(ObjectType.sessions.name))
..where(db.objectMediaItems.objectId.equals(session.id));
..where(db.objectMediaItems.objectId.equals(sessionId));
final mediaItems =
(await result.get()).map((e) => e.readTable(db.mediaItems)).toList();
@ -75,4 +75,9 @@ class MediaItemsDao extends DatabaseAccessor<AppDatabase>
return mediaItems;
});
}
Future removeAll(Iterable<int> mediaItemIds) {
return (delete(mediaItems)..where((table) => table.id.isIn(mediaItemIds)))
.go();
}
}

View File

@ -8,11 +8,9 @@ class SessionsDao extends DatabaseAccessor<AppDatabase> with _$SessionsDaoMixin
SessionsDao(super.db);
Future<Session> find(int id) => (select(sessions)..where((session) => session.id.equals(id) )).getSingle();
Future<List<Session>> all() => select(sessions).get();
Future<List<Session>> all() => (select(sessions)..orderBy([(session) => OrderingTerm(expression: session.createdAt, mode: OrderingMode.desc)])).get();
Stream<List<Session>> watch() => select(sessions).watch();
Future createOrUpdate(SessionsCompanion session) => into(sessions).insertOnConflictUpdate(session);
// Future replace(Session session) => update(sessions).replace(session);
Future replace(Session session) => update(sessions).replace(session);
Future remove(Session session) => delete(sessions).delete(session);
}