using System.Collections.Generic; using System.Threading.Tasks; using ErsatzTV.Core.AggregateModels; using ErsatzTV.Core.Domain; using LanguageExt; namespace ErsatzTV.Core.Interfaces.Repositories { public interface IMediaCollectionRepository { Task Add(SimpleMediaCollection collection); Task> Get(int id); Task> GetSimpleMediaCollection(int id); Task> GetSimpleMediaCollectionWithItems(int id); Task> GetTelevisionMediaCollection(int id); Task> GetSimpleMediaCollections(); Task> GetAll(); Task> GetSummaries(string searchString); Task>> GetItems(int id); Task>> GetSimpleMediaCollectionItems(int id); Task>> GetTelevisionMediaCollectionItems(int id); Task Update(SimpleMediaCollection collection); Task InsertOrIgnore(TelevisionMediaCollection collection); Task ReplaceItems(int collectionId, List mediaItems); Task Delete(int mediaCollectionId); Task DeleteEmptyTelevisionCollections(); } }