using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;

namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;

public class ProcessMapPlanSwitchingOffThePumpExportService : ProcessMapPlanExportService<ProcessMapPlanSwitchingOffThePumpDto>
{
    public ProcessMapPlanSwitchingOffThePumpExportService(
        IChangeLogRepository<ProcessMapPlanSwitchingOffThePumpDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
        IWellService wellService)
        : base(processMapPlanRepository, wellService)
    {
    }

    protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSwitchingOffThePumpTemplate();

    protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
    {
        var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);

        return $"{caption}_РТК_План_выключение_насоса.xlsx";
    }
}