import 'package:immich_mobile/entities/album.entity.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/entities/user.entity.dart'; import 'package:immich_mobile/interfaces/database.interface.dart'; import 'package:immich_mobile/models/albums/album_search.model.dart'; abstract interface class IAlbumRepository implements IDatabaseRepository { Future create(Album album); Future get(int id); Future getByName( String name, { bool? shared, bool? remote, }); Future> getAll({ bool? shared, bool? remote, int? ownerId, AlbumSort? sortBy, }); Future update(Album album); Future delete(int albumId); Future deleteAllLocal(); Future count({bool? local}); Future addUsers(Album album, List users); Future removeUsers(Album album, List users); Future addAssets(Album album, List assets); Future removeAssets(Album album, List assets); Future recalculateMetadata(Album album); Future> search(String searchTerm, QuickFilterMode filterMode); } enum AlbumSort { remoteId, localId }