using ErsatzTV.Core.Domain; using ErsatzTV.Core.Scheduling; namespace ErsatzTV.Core.Interfaces.Repositories; public interface IMediaCollectionRepository { Task>> GetPlaylistItemMap( int playlistId, CancellationToken cancellationToken); Task>> GetPlaylistItemMap( string groupName, string name, CancellationToken cancellationToken); Task>> GetPlaylistItemMap( Playlist playlist, CancellationToken cancellationToken); Task> GetCollectionWithCollectionItemsUntracked(int id); Task> GetItems(int id); Task> GetCollectionItemsByName(string name, CancellationToken cancellationToken); Task> GetMultiCollectionItems(int id, CancellationToken cancellationToken); Task> GetMultiCollectionItemsByName(string name, CancellationToken cancellationToken); Task> GetSmartCollectionItems(int id, CancellationToken cancellationToken); Task> GetSmartCollectionItemsByName(string name, CancellationToken cancellationToken); Task> GetSmartCollectionItems( string query, string smartCollectionName, CancellationToken cancellationToken); Task> GetRerunCollectionItems(int id, CancellationToken cancellationToken); Task> GetShowItemsByShowGuids(List guids); Task> GetPlaylistItems(int id, CancellationToken cancellationToken); Task> GetMovie(int id); Task> GetEpisode(int id); Task> GetMusicVideo(int id); Task> GetOtherVideo(int id); Task> GetSong(int id); Task> GetImage(int id); Task> GetRemoteStream(int id); Task> GetMultiCollectionCollections(int id, CancellationToken cancellationToken); Task> GetFakeMultiCollectionCollections( int? collectionId, int? smartCollectionId, CancellationToken cancellationToken); Task> PlayoutIdsUsingCollection(int collectionId); Task> PlayoutIdsUsingMultiCollection(int multiCollectionId); Task> PlayoutIdsUsingSmartCollection(int smartCollectionId); Task> PlayoutIdsUsingRerunCollection(int rerunCollectionId); Task IsCustomPlaybackOrder(int collectionId); Task> GetNameFromKey(CollectionKey emptyCollection, CancellationToken cancellationToken); List GroupIntoFakeCollections(List items, string fakeKey = null); }