using Common.Enums; namespace Infrastructure.Verticals.DownloadClient.Factory; /// /// Factory for creating and managing download client service instances /// public interface IDownloadClientFactory { /// /// Gets a download client by its ID /// /// The client ID /// The download service for the specified client IDownloadService GetClient(Guid clientId); /// /// Gets all enabled download clients /// /// Collection of enabled download client services IEnumerable GetAllEnabledClients(); /// /// Gets all enabled download clients of a specific type /// /// The client type /// Collection of enabled download client services of the specified type IEnumerable GetClientsByType(DownloadClientType clientType); /// /// Refreshes a specific client instance (disposes and recreates) /// /// The client ID to refresh void RefreshClient(Guid clientId); /// /// Refreshes all client instances (disposes and recreates) /// void RefreshAllClients(); }