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 { public Task Add(SimpleMediaCollection collection); public Task> Get(int id); public Task> GetSimpleMediaCollection(int id); public Task> GetSimpleMediaCollectionWithItems(int id); public Task> GetTelevisionMediaCollection(int id); public Task> GetSimpleMediaCollections(); public Task> GetAll(); public Task> GetSummaries(string searchString); public Task>> GetItems(int id); public Task>> GetSimpleMediaCollectionItems(int id); public Task>> GetTelevisionMediaCollectionItems(int id); public Task Update(SimpleMediaCollection collection); public Task InsertOrIgnore(TelevisionMediaCollection collection); public Task ReplaceItems(int collectionId, List mediaItems); public Task Delete(int mediaCollectionId); public Task DeleteEmptyTelevisionCollections(); } }