using ErsatzTV.Core.Domain; namespace ErsatzTV.Core.Interfaces.Repositories; public interface IMediaSourceRepository { Task Add(PlexMediaSource plexMediaSource); Task> GetAllPlex(); Task> GetPlexLibraries(int plexMediaSourceId); Task> GetPlexPathReplacements(int plexMediaSourceId); Task> GetPlexLibrary(int plexLibraryId); Task> GetPlex(int id); Task> GetPlexByLibraryId(int plexLibraryId); Task> GetPlexPathReplacementsByLibraryId(int plexLibraryPathId); Task Update( PlexMediaSource plexMediaSource, List toAdd, List toDelete); Task> UpdateLibraries( int plexMediaSourceId, List toAdd, List toDelete); Task> UpdateLibraries( int jellyfinMediaSourceId, List toAdd, List toDelete, List toUpdate); Task> UpdateLibraries( int embyMediaSourceId, List toAdd, List toDelete, List toUpdate); Task UpdatePathReplacements( int plexMediaSourceId, List toAdd, List toUpdate, List toDelete); Task> DeleteAllPlex(); Task> DeletePlex(PlexMediaSource plexMediaSource); Task> DisablePlexLibrarySync(List libraryIds); Task EnablePlexLibrarySync(IEnumerable libraryIds); Task UpsertJellyfin(string address, string serverName, string operatingSystem); Task> GetAllJellyfin(); Task> GetJellyfin(int id); Task> GetJellyfinLibraries(int jellyfinMediaSourceId); Task EnableJellyfinLibrarySync(IEnumerable libraryIds); Task> DisableJellyfinLibrarySync(List libraryIds); Task> GetJellyfinLibrary(int jellyfinLibraryId); Task> GetJellyfinByLibraryId(int jellyfinLibraryId); Task> GetJellyfinPathReplacements(int jellyfinMediaSourceId); Task> GetJellyfinPathReplacementsByLibraryId(int jellyfinLibraryPathId); Task UpdatePathReplacements( int jellyfinMediaSourceId, List toAdd, List toUpdate, List toDelete); Task> DeleteAllJellyfin(); Task UpsertEmby(string address, string serverName, string operatingSystem); Task> GetAllEmby(); Task> GetEmby(int id); Task> GetEmbyByLibraryId(int embyLibraryId); Task> GetEmbyLibrary(int embyLibraryId); Task> GetEmbyLibraries(int embyMediaSourceId); Task> GetEmbyPathReplacements(int embyMediaSourceId); Task> GetEmbyPathReplacementsByLibraryId(int embyLibraryPathId); Task UpdatePathReplacements( int embyMediaSourceId, List toAdd, List toUpdate, List toDelete); Task> DeleteAllEmby(); Task EnableEmbyLibrarySync(IEnumerable libraryIds); Task> DisableEmbyLibrarySync(List libraryIds); Task UpdateLastScan(EmbyMediaSource embyMediaSource); }