using ErsatzTV.Core.Domain; using ErsatzTV.Core.Metadata; 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 AddArtist(MusicVideoMetadata metadata, MusicVideoArtist artist); Task AddGenre(MusicVideoMetadata metadata, Genre genre); Task AddTag(MusicVideoMetadata metadata, Tag tag); Task AddStudio(MusicVideoMetadata metadata, Studio studio); Task AddDirector(MusicVideoMetadata metadata, Director director); Task RemoveArtist(MusicVideoArtist artist); Task> GetMusicVideosForCards(List ids); Task> FindOrphanPaths(LibraryPath libraryPath); Task GetMusicVideoCount(int artistId); Task> GetPagedMusicVideos(int artistId, int pageNumber, int pageSize); }