using AsbCloudApp.Data;
using AsbCloudApp.Requests.ParserOptions;

namespace AsbCloudApp.Services.Parsers;

/// <summary>
/// Фабрика для создания сервиса парсинга
/// </summary>
/// <typeparam name="TId"></typeparam>
/// <typeparam name="TDto"></typeparam>
public interface IParserFactory<in TId, TDto>
   where TId : struct
   where TDto : class, IId
{
   /// <summary>
   /// Создать парсер
   /// </summary>
   /// <param name="id"></param>
   /// <typeparam name="TOptions"></typeparam>
   /// <returns></returns>
   IParserService<TDto, TOptions> CreateParser<TOptions>(TId id)
      where TOptions : IParserOptionsRequest;
}