using System;
using System.Threading;
using System.Threading.Tasks;
using AsbCloudApp.Data;
using AsbCloudApp.Data.DailyReport;
using AsbCloudApp.Data.DailyReport.Blocks;
using AsbCloudApp.Requests;
namespace AsbCloudApp.Services.DailyReport;
public interface IDailyReportService
{
///
/// Создать отчёт
///
///
///
///
///
Task InsertAsync(int idWell, DateTime dateStart, CancellationToken cancellationToken);
///
/// Обновить блок
///
///
///
///
///
///
///
Task UpdateBlockAsync(int idDailyReport, int idUser, TBlock editableBlock, CancellationToken cancellationToken)
where TBlock : EditableBlock;
///
/// Получить сформированный суточный отчёт
///
///
///
///
///
Task GetAsync(int idWell, DateTime dateStart, CancellationToken cancellationToken);
///
/// Получить список суточных отчётов по скважине
///
///
///
///
///
Task> GetAsync(int idWell, FileReportRequest request,
CancellationToken cancellationToken);
///
/// Получить диапазон дат по которым возможно сформировать суточный отчёты
///
///
///
///
Task GetDatesRangeAsync(int idWell, CancellationToken cancellationToken);
}