using System; using System.Threading; using System.Threading.Tasks; using AsbCloudApp.Data; using AsbCloudApp.Data.DailyReport; using AsbCloudApp.Requests; namespace AsbCloudApp.Services.DailyReport; /// <summary> /// Суточные отчёты /// </summary> public interface IDailyReportService { /// <summary> /// Обновить или создать суточный отчёт /// </summary> /// <param name="dateDailyReport"></param> /// <param name="idUser"></param> /// <param name="editableBlock"></param> /// <param name="cancellationToken"></param> /// <param name="idWell"></param> /// <returns></returns> Task<int> UpdateOrInsertAsync<TBlock>(int idWell, DateOnly dateDailyReport, int idUser, TBlock editableBlock, CancellationToken cancellationToken) where TBlock : ItemInfoDto; /// <summary> /// Получить сформированный суточный отчёт /// </summary> /// <param name="idWell"></param> /// <param name="dateDailyReport"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<DailyReportDto> GetAsync(int idWell, DateOnly dateDailyReport, CancellationToken cancellationToken); /// <summary> /// Получить список суточных отчётов по скважине /// </summary> /// <param name="idWell"></param> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<PaginationContainer<DailyReportDto>> GetAsync(int idWell, FileReportRequest request, CancellationToken cancellationToken); }