using System.Collections.Generic; using System.Threading.Tasks; using ErsatzTV.Core.Domain; using ErsatzTV.Core.Metadata; using LanguageExt; namespace ErsatzTV.Core.Interfaces.Repositories { public interface IMusicVideoRepository { Task>> GetOrAdd( Artist artist, LibraryPath libraryPath, string path); Task> FindMusicVideoPaths(LibraryPath libraryPath); Task> DeleteByPath(LibraryPath libraryPath, string path); Task AddGenre(MusicVideoMetadata metadata, Genre genre); Task AddTag(MusicVideoMetadata metadata, Tag tag); Task AddStudio(MusicVideoMetadata metadata, Studio studio); Task> GetMusicVideosForCards(List ids); Task> FindOrphanPaths(LibraryPath libraryPath); Task GetMusicVideoCount(int artistId); Task> GetPagedMusicVideos(int artistId, int pageNumber, int pageSize); } }