This commit is contained in:
Alex Tran 2025-01-23 15:34:39 -06:00
parent 071b271484
commit 8879790054
3 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,7 @@
import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/interfaces/database.interface.dart';
import 'package:isar/isar.dart';
abstract interface class IArchiveRepository implements IDatabaseRepository {
QueryBuilder<Asset, Asset, QAfterSortBy> getTimelineQuery(int userIsarId);
}

View File

@ -0,0 +1,25 @@
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/interfaces/archive.interface.dart';
import 'package:immich_mobile/providers/db.provider.dart';
import 'package:immich_mobile/repositories/database.repository.dart';
import 'package:isar/isar.dart';
final archiveRepositoryProvider =
Provider((ref) => ArchiveRepository(ref.watch(dbProvider)));
class ArchiveRepository extends DatabaseRepository
implements IArchiveRepository {
ArchiveRepository(super.db);
@override
QueryBuilder<Asset, Asset, QAfterSortBy> getTimelineQuery(int userIsarId) {
return db.assets
.where()
.ownerIdEqualToAnyChecksum(userIsarId)
.filter()
.isArchivedEqualTo(true)
.isTrashedEqualTo(false)
.sortByFileCreatedAtDesc();
}
}

View File

@ -0,0 +1,15 @@
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/repositories/archive.repository.dart';
final archiveServiceProvider = Provider((ref) {
return ArchiveService(ref.watch(archiveRepositoryProvider));
});
class ArchiveService {
final ArchiveRepository repository;
ArchiveService(this.repository);
getTimelineQuery(int userIsarId) {
return repository.getTimelineQuery(userIsarId);
}
}