using ErsatzTV.Core.Domain; using ErsatzTV.Core.Plex; namespace ErsatzTV.Core.Interfaces.Repositories; public interface IPlexTelevisionRepository : IMediaServerTelevisionRepository { Task> RemoveAllTags( PlexLibrary library, PlexTag tag, System.Collections.Generic.HashSet keep, CancellationToken cancellationToken); Task AddTag( PlexLibrary library, PlexShow show, PlexTag tag, CancellationToken cancellationToken); Task UpdateLastNetworksScan(PlexLibrary library, CancellationToken cancellationToken); Task> GetShowTitleKey(int libraryId, int showId, CancellationToken cancellationToken); } public record PlexShowAddTagResult(Option Existing, Option Added); public record PlexShowTitleKeyResult(string Title, string Key);