using AsbCloudApp.Data;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace AsbCloudApp.Services
{
    public interface IReportService
    {
        int ReportCategoryId { get; }
        int CreateReport(int idWell, int idUser, int stepSeconds,
            int format, DateTime begin, DateTime end,
            Action<float, string, int> handleReportProgress,
            Action<string, int> handleReportName);
        int GetReportPagesCount(int idWell, DateTime begin, DateTime end,
            int stepSeconds, int format);
        Task<IEnumerable<ReportPropertiesDto>> GetSuitableReportsAsync(int idWell,
            DateTime begin, DateTime end, int stepSeconds, int format,
            CancellationToken token);
        Task<DatesRangeDto> GetReportsDatesRangeAsync(int idWell,
            CancellationToken token);
    }
}