using System.Collections.Generic; using System.Threading.Tasks; using ErsatzTV.Core.Domain; using LanguageExt; namespace ErsatzTV.Core.Interfaces.Repositories { public interface IMediaCollectionRepository { Task Add(Collection collection); Task AddMediaItem(int collectionId, int mediaItemId); Task AddMediaItems(int collectionId, List mediaItemIds); Task> Get(int id); Task> GetCollectionWithItems(int id); Task> GetCollectionWithItemsUntracked(int id); Task> GetCollectionWithCollectionItemsUntracked(int id); Task> GetAll(); Task>> GetItems(int id); Task Update(Collection collection); Task Delete(int collectionId); Task> PlayoutIdsUsingCollection(int collectionId); Task IsCustomPlaybackOrder(int collectionId); } }