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);
}