using AsbCloudApp.Requests.ExportOptions;

namespace AsbCloudApp.Services.Export;

/// <summary>
/// Фабрика создания сервисов для экспорта
/// </summary>
/// <typeparam name="TId"></typeparam>
public interface IExportServiceFactory<in TId>
	where TId : struct
{
	/// <summary>
	/// Создать сервис экспорта
	/// </summary>
	/// <param name="id"></param>
	/// <typeparam name="TOptions"></typeparam>
	/// <returns></returns>
	IExportService<TOptions> CreateExportService<TOptions>(TId id)
		where TOptions : IExportOptionsRequest;
}