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/metadata/trash.dart'; import 'package:aves/model/video_playback.dart'; abstract class MetadataDb { int get nextId; Future init(); Future dbFileSize(); Future reset(); Future removeIds(Set ids, {Set? dataTypes}); // entries Future clearEntries(); Future> loadAllEntries(); Future saveEntries(Iterable entries); Future updateEntry(int id, 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 updateMetadata(int id, CatalogMetadata? metadata); // address Future clearAddresses(); Future> loadAllAddresses(); Future saveAddresses(Set addresses); Future updateAddress(int id, AddressDetails? address); // trash Future clearTrashDetails(); Future> loadAllTrashDetails(); Future updateTrash(int id, TrashDetails? details); // favourites Future clearFavourites(); Future> loadAllFavourites(); Future addFavourites(Iterable rows); Future updateFavouriteId(int id, FavouriteRow row); Future removeFavourites(Iterable rows); // covers Future clearCovers(); Future> loadAllCovers(); Future addCovers(Iterable rows); Future updateCoverEntryId(int id, CoverRow row); Future removeCovers(Set filters); // video playback Future clearVideoPlayback(); Future> loadAllVideoPlayback(); Future loadVideoPlayback(int? id); Future addVideoPlayback(Set rows); Future removeVideoPlayback(Set ids); }