using Microsoft.AspNetCore.Mvc; using Persistence.Models; using Persistence.Models.Requests; namespace Persistence.API; /// <summary> /// Интерфейс для работы с API журнала изменений /// </summary> public interface IChangeLogApi : ISyncWithDiscriminatorApi<DataWithWellDepthAndSectionDto> { /// <summary> /// Импорт с заменой: удаление старых строк и добавление новых /// </summary> /// <param name="idDiscriminator"></param> /// <param name="dtos"></param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> ClearAndAddRange(Guid idDiscriminator, IEnumerable<DataWithWellDepthAndSectionDto> dtos, CancellationToken token); /// <summary> /// Получение данных на текущую дату (с пагинацией) /// </summary> /// <param name="idDiscriminator"></param> /// <param name="filterRequest">параметры запроса фильтрации</param> /// <param name="paginationRequest">параметры запроса пагинации</param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> GetCurrent(Guid idDiscriminator, SectionPartRequest filterRequest, PaginationRequest paginationRequest, CancellationToken token); /// <summary> /// Получение данных на определенную дату (с пагинацией) /// </summary> /// <param name="idDiscriminator"></param> /// <param name="moment"></param> /// <param name="filterRequest">параметры запроса фильтрации</param> /// <param name="paginationRequest">параметры запроса пагинации</param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> GetByDate(Guid idDiscriminator, DateTimeOffset moment, SectionPartRequest filterRequest, PaginationRequest paginationRequest, CancellationToken token); /// <summary> /// Получение исторических данных за определенный период времени /// </summary> /// <param name="idDiscriminator"></param> /// <param name="dateBegin"></param> /// <param name="dateEnd"></param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> GetChangeLogForDate(Guid idDiscriminator, DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token); /// <summary> /// Добавить одну запись /// </summary> /// <param name="idDiscriminator"></param> /// <param name="dto"></param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> Add(Guid idDiscriminator, DataWithWellDepthAndSectionDto dto, CancellationToken token); /// <summary> /// Добавить несколько записей /// </summary> /// <param name="idDiscriminator"></param> /// <param name="dtos"></param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> AddRange(Guid idDiscriminator, IEnumerable<DataWithWellDepthAndSectionDto> dtos, CancellationToken token); /// <summary> /// Обновить одну запись /// </summary> /// <param name="dto"></param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> Update(DataWithWellDepthAndSectionDto dto, CancellationToken token); /// <summary> /// Обновить несколько записей /// </summary> /// <param name="dtos"></param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> UpdateRange(IEnumerable<DataWithWellDepthAndSectionDto> dtos, CancellationToken token); /// <summary> /// Удалить одну запись /// </summary> /// <param name="id"></param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> Delete(Guid id, CancellationToken token); /// <summary> /// Удалить несколько записей /// </summary> /// <param name="ids"></param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> DeleteRange(IEnumerable<Guid> ids, CancellationToken token); /// <summary> /// Получение списка дат, в которые происходили изменения (день, месяц, год, без времени) /// </summary> /// <param name="idDiscriminator"></param> /// <param name="token"></param> /// <returns></returns> Task<IActionResult> GetDatesChange(Guid idDiscriminator, CancellationToken token); }