using Cleanuparr.Domain.Enums; using Cleanuparr.Persistence.Models.Configuration.General; namespace Cleanuparr.Infrastructure.Http.DynamicHttpClientSystem; /// /// Factory service to manage dynamic HttpClient creation /// public interface IDynamicHttpClientFactory { /// /// Creates an HttpClient with the specified configuration and registers it for future use /// HttpClient CreateClient(string clientName, HttpClientConfig config); /// /// Creates an HttpClient using a previously registered configuration /// HttpClient CreateClient(string clientName); /// /// Registers a configuration for later use /// void RegisterConfiguration(string clientName, HttpClientConfig config); /// /// Registers a retry-enabled HttpClient configuration /// void RegisterRetryClient(string clientName, int timeout, RetryConfig retryConfig, CertificateValidationType certificateType); /// /// Registers a Deluge-specific HttpClient configuration /// void RegisterDelugeClient(string clientName, int timeout, RetryConfig retryConfig, CertificateValidationType certificateType); /// /// Registers a configuration for a download client /// void RegisterDownloadClient(string clientName, int timeout, HttpClientType clientType, RetryConfig retryConfig, CertificateValidationType certificateType); /// /// Unregisters a configuration /// void UnregisterConfiguration(string clientName); /// /// Updates all registered HTTP client configurations with new general config settings /// void UpdateAllClientsFromGeneralConfig(GeneralConfig generalConfig); /// /// Gets all currently registered client names /// IEnumerable GetRegisteredClientNames(); /// /// Forces cache invalidation for all registered clients (for debugging/testing) /// void InvalidateAllCachedConfigurations(); }