using AsbCloudApp.Data; using AsbCloudApp.Data.DailyReport; using System; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { /// <summary> /// Суточный рапорт (сводка) /// </summary> public interface IDailyReportService { /// <summary> /// получить список сформированных рапортов по скважине за период времени /// </summary> /// <param name="idWell"></param> /// <param name="begin"></param> /// <param name="end"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<IEnumerable<DailyReportDto>> GetListAsync(int idWell, DateOnly? begin, DateOnly? end, CancellationToken cancellationToken); /// <summary> /// Добавить новый рапорт /// </summary> /// <param name="idWell"></param> /// <param name="startDate"></param> /// <param name="idUser"></param> /// <param name="token"></param> /// <returns></returns> Task<int> AddAsync(int idWell, DateOnly startDate, int idUser, CancellationToken token); /// <summary> /// Сформировать файл рапорта /// </summary> /// <param name="idWell"></param> /// <param name="date"></param> /// <param name="token"></param> /// <returns></returns> Task<Stream?> MakeReportAsync(int idWell, DateOnly date, CancellationToken token); /// <summary> /// изменить блок данных для суточного рапорта /// </summary> /// <param name="idWell"></param> /// <param name="startDate"></param> /// <param name="dto"></param> /// <param name="token"></param> /// <returns></returns> Task<int> UpdateBlockAsync(int idWell, DateOnly startDate, ItemInfoDto dto, CancellationToken token); } }