import 'package:aves/model/covers.dart'; import 'package:aves/model/entry.dart'; import 'package:aves/model/favourites.dart'; import 'package:aves/model/filters/filters.dart'; import 'package:aves/model/metadata/address.dart'; import 'package:aves/model/metadata/catalog.dart'; import 'package:aves/model/video_playback.dart'; abstract class MetadataDb { Future init(); Future dbFileSize(); Future reset(); Future removeIds(Set contentIds, {Set? dataTypes}); // entries Future clearEntries(); Future> loadAllEntries(); Future saveEntries(Iterable entries); Future updateEntryId(int oldId, AvesEntry entry); Future> searchEntries(String query, {int? limit}); Future> loadEntries(List ids); // date taken Future clearDates(); Future> loadDates(); // catalog metadata Future clearMetadataEntries(); Future> loadAllMetadataEntries(); Future saveMetadata(Set metadataEntries); Future updateMetadataId(int oldId, CatalogMetadata? metadata); // address Future clearAddresses(); Future> loadAllAddresses(); Future saveAddresses(Set addresses); Future updateAddressId(int oldId, AddressDetails? address); // favourites Future clearFavourites(); Future> loadAllFavourites(); Future addFavourites(Iterable rows); Future updateFavouriteId(int oldId, FavouriteRow row); Future removeFavourites(Iterable rows); // covers Future clearCovers(); Future> loadAllCovers(); Future addCovers(Iterable rows); Future updateCoverEntryId(int oldId, CoverRow row); Future removeCovers(Set filters); // video playback Future clearVideoPlayback(); Future> loadAllVideoPlayback(); Future loadVideoPlayback(int? contentId); Future addVideoPlayback(Set rows); Future updateVideoPlaybackId(int oldId, int? newId); Future removeVideoPlayback(Set contentIds); }