27 lines
1.1 KiB
C#
27 lines
1.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using ErsatzTV.Core.Domain;
|
|
using LanguageExt;
|
|
|
|
namespace ErsatzTV.Core.Interfaces.Repositories
|
|
{
|
|
public interface IMediaCollectionRepository
|
|
{
|
|
Task<Collection> Add(Collection collection);
|
|
Task<bool> AddMediaItem(int collectionId, int mediaItemId);
|
|
Task<bool> AddMediaItems(int collectionId, List<int> mediaItemIds);
|
|
Task<Option<Collection>> Get(int id);
|
|
Task<Option<Collection>> GetCollectionWithItems(int id);
|
|
Task<Option<Collection>> GetCollectionWithItemsUntracked(int id);
|
|
Task<Option<Collection>> GetCollectionWithCollectionItemsUntracked(int id);
|
|
Task<List<Collection>> GetAll();
|
|
Task<int> CountAllCollections();
|
|
Task<List<Collection>> GetPagedCollections(int pageNumber, int pageSize);
|
|
Task<Option<List<MediaItem>>> GetItems(int id);
|
|
Task<bool> Update(Collection collection);
|
|
Task Delete(int collectionId);
|
|
Task<List<int>> PlayoutIdsUsingCollection(int collectionId);
|
|
Task<bool> IsCustomPlaybackOrder(int collectionId);
|
|
}
|
|
}
|