using Cleanuparr.Domain.Entities.Arr; using Cleanuparr.Persistence.Models.Configuration.Arr; namespace Cleanuparr.Infrastructure.Features.Arr.Interfaces; public interface IRadarrClient : IArrClient { /// /// Streams movies from a Radarr instance one item at a time /// IAsyncEnumerable StreamAllMoviesAsync(ArrInstance arrInstance, CancellationToken cancellationToken = default); /// /// Fetches quality profiles from a Radarr instance /// Task> GetQualityProfilesAsync(ArrInstance arrInstance); /// /// Fetches custom format scores for movie files in batches /// Task> GetMovieFileScoresAsync(ArrInstance arrInstance, List movieFileIds); /// /// Fetches the ids of movies Radarr grabbed since the given time. /// Task> GetRecentlyGrabbedMovieIdsAsync(ArrInstance arrInstance, DateTimeOffset since, CancellationToken cancellationToken = default); /// /// Fetches every movie Radarr lists as missing, filtered by monitored state. /// Task> GetMissingMoviesAsync(ArrInstance arrInstance, bool monitored, CancellationToken cancellationToken = default); /// /// Fetches every movie Radarr lists as a cutoff-unmet upgrade, filtered by monitored state. /// Task> GetCutoffUnmetMoviesAsync(ArrInstance arrInstance, bool monitored, CancellationToken cancellationToken = default); }