using System.Collections.Generic; using System.Threading.Tasks; using ErsatzTV.Core.Domain; using ErsatzTV.Core.Jellyfin; using LanguageExt; namespace ErsatzTV.Core.Interfaces.Repositories { public interface IJellyfinTelevisionRepository { Task> GetExistingShows(JellyfinLibrary library); Task> GetExistingSeasons(JellyfinLibrary library, string showItemId); Task> GetExistingEpisodes(JellyfinLibrary library, string seasonItemId); Task AddShow(JellyfinShow show); Task> Update(JellyfinShow show); Task AddSeason(JellyfinShow show, JellyfinSeason season); Task> Update(JellyfinSeason season); Task AddEpisode(JellyfinSeason season, JellyfinEpisode episode); Task> Update(JellyfinEpisode episode); Task> RemoveMissingShows(JellyfinLibrary library, List showIds); Task RemoveMissingSeasons(JellyfinLibrary library, List seasonIds); Task> RemoveMissingEpisodes(JellyfinLibrary library, List episodeIds); Task DeleteEmptySeasons(JellyfinLibrary library); Task> DeleteEmptyShows(JellyfinLibrary library); } }