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; }
        string CreateReport(int idWell, int idUser, int stepSeconds,
            int format, DateTime begin, DateTime end,
            Action<object, string> handleReportProgress);
        int GetReportPagesCount(int idWell, DateTime begin, DateTime end,
            int stepSeconds, int format);
        DatesRangeDto GetDatesRangeOrDefault(int idWell);
        Task<IEnumerable<ReportPropertiesDto>> GetAllReportsByWellAsync(int idWell, CancellationToken token);
    }
}