using System.Threading;
using System.Threading.Tasks;
using AsbCloudApp.Data;
using AsbCloudApp.Requests.ParserOptions;
using AsbCloudApp.Services;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace AsbCloudWebApi.Controllers.Interfaces;

public interface IWellControllerWithParser<TDto, in TOptions>
	where TDto : class, IId
	where TOptions : class, IParserOptionsRequest
{
	IParserService<TDto, TOptions> ParserService { get; }

	Task<ActionResult<ParserResultDto<TDto>>> Parse(int idWell,
		[FromForm] IFormFileCollection files,
		CancellationToken token);

	IActionResult GetTemplate();
}