import 'package:aves/model/covers.dart'; import 'package:aves/model/entry/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/vaults/details.dart'; import 'package:aves/model/viewer/video_playback.dart'; abstract class LocalMediaDb { int get nextId; Future init(); Future dbFileSize(); Future reset(); Future removeIds(Set ids, {Set? dataTypes}); // entries Future clearEntries(); Future> loadEntries({int? origin, String? directory}); Future> loadEntriesById(Set ids); Future insertEntries(Set entries); Future updateEntry(int id, AvesEntry entry); Future> searchLiveEntries(String query, {int? limit}); Future> searchLiveDuplicates(int origin, Set? entries); // date taken Future clearDates(); Future> loadDates(); // catalog metadata Future clearCatalogMetadata(); Future> loadCatalogMetadata(); Future> loadCatalogMetadataById(Set ids); Future saveCatalogMetadata(Set metadataEntries); Future updateCatalogMetadata(int id, CatalogMetadata? metadata); // address Future clearAddresses(); Future> loadAddresses(); Future> loadAddressesById(Set ids); Future saveAddresses(Set addresses); Future updateAddress(int id, AddressDetails? address); // vaults Future clearVaults(); Future> loadAllVaults(); Future addVaults(Set rows); Future updateVault(String oldName, VaultDetails row); Future removeVaults(Set rows); // trash Future clearTrashDetails(); Future> loadAllTrashDetails(); Future updateTrash(int id, TrashDetails? details); // favourites Future clearFavourites(); Future> loadAllFavourites(); Future addFavourites(Set rows); Future updateFavouriteId(int id, FavouriteRow row); Future removeFavourites(Set rows); // covers Future clearCovers(); Future> loadAllCovers(); Future addCovers(Set 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); }