import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart'; import 'package:immich_mobile/providers/db.provider.dart'; import 'package:immich_mobile/repositories/database.repository.dart'; import 'package:isar/isar.dart'; enum BackupAlbumSort { id } final backupAlbumRepositoryProvider = Provider((ref) => BackupAlbumRepository(ref.watch(dbProvider))); class BackupAlbumRepository extends DatabaseRepository { const BackupAlbumRepository(super.db); Future> getAll({BackupAlbumSort? sort}) { final baseQuery = db.backupAlbums.where(); final QueryBuilder query = switch (sort) { null => baseQuery.noOp(), BackupAlbumSort.id => baseQuery.sortById(), }; return query.findAll(); } Future> getIdsBySelection(BackupSelection backup) => db.backupAlbums.filter().selectionEqualTo(backup).idProperty().findAll(); Future> getAllBySelection(BackupSelection backup) => db.backupAlbums.filter().selectionEqualTo(backup).findAll(); Future deleteAll(List ids) => txn(() => db.backupAlbums.deleteAll(ids)); Future updateAll(List backupAlbums) => txn(() => db.backupAlbums.putAll(backupAlbums)); }