import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart'; import 'package:immich_mobile/interfaces/backup.interface.dart'; import 'package:immich_mobile/providers/db.provider.dart'; import 'package:immich_mobile/repositories/database.repository.dart'; import 'package:isar/isar.dart'; final backupRepositoryProvider = Provider((ref) => BackupRepository(ref.watch(dbProvider))); class BackupRepository extends DatabaseRepository implements IBackupRepository { BackupRepository(super.db); @override Future<List<BackupAlbum>> getAll({BackupAlbumSort? sort}) { final baseQuery = db.backupAlbums.where(); final QueryBuilder<BackupAlbum, BackupAlbum, QAfterSortBy> query; switch (sort) { case null: query = baseQuery.noOp(); case BackupAlbumSort.id: query = baseQuery.sortById(); } return query.findAll(); } @override Future<List<String>> getIdsBySelection(BackupSelection backup) => db.backupAlbums.filter().selectionEqualTo(backup).idProperty().findAll(); @override Future<List<BackupAlbum>> getAllBySelection(BackupSelection backup) => db.backupAlbums.filter().selectionEqualTo(backup).findAll(); @override Future<void> deleteAll(List<int> ids) => txn(() => db.backupAlbums.deleteAll(ids)); @override Future<void> updateAll(List<BackupAlbum> backupAlbums) => txn(() => db.backupAlbums.putAll(backupAlbums)); }