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 IArtistRepository { Task> GetArtistByMetadata(int libraryPathId, ArtistMetadata metadata); Task>> AddArtist( int libraryPathId, string artistFolder, ArtistMetadata metadata); Task> DeleteEmptyArtists(LibraryPath libraryPath); Task> GetArtist(int artistId); Task> GetArtistsForCards(List ids); Task AddGenre(ArtistMetadata metadata, Genre genre); Task AddStyle(ArtistMetadata metadata, Style style); Task AddMood(ArtistMetadata metadata, Mood mood); Task> GetArtistItems(int artistId); Task> GetAllArtists(); } }