using System.Collections.Generic; using System.Threading.Tasks; using ErsatzTV.Core.Domain; using ErsatzTV.Core.Emby; using LanguageExt; namespace ErsatzTV.Core.Interfaces.Repositories { public interface IEmbyTelevisionRepository { Task> GetExistingShows(EmbyLibrary library); Task> GetExistingSeasons(EmbyLibrary library, string showItemId); Task> GetExistingEpisodes(EmbyLibrary library, string seasonItemId); Task AddShow(EmbyShow show); Task> Update(EmbyShow show); Task AddSeason(EmbyShow show, EmbySeason season); Task> Update(EmbySeason season); Task AddEpisode(EmbySeason season, EmbyEpisode episode); Task> Update(EmbyEpisode episode); Task> RemoveMissingShows(EmbyLibrary library, List showIds); Task RemoveMissingSeasons(EmbyLibrary library, List seasonIds); Task> RemoveMissingEpisodes(EmbyLibrary library, List episodeIds); Task DeleteEmptySeasons(EmbyLibrary library); Task> DeleteEmptyShows(EmbyLibrary library); } }