2024-12-03 11:35:58 +05:00
|
|
|
|
using Persistence.Models;
|
2024-12-02 18:14:45 +05:00
|
|
|
|
using Persistence.Models.Requests;
|
|
|
|
|
using Refit;
|
|
|
|
|
|
|
|
|
|
namespace Persistence.Client.Clients;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Интерфейс для тестирования API, предназначенного для работы с записями ChangeLod
|
|
|
|
|
/// </summary>
|
|
|
|
|
public interface IChangeLogClient
|
|
|
|
|
{
|
2024-12-03 11:35:58 +05:00
|
|
|
|
private const string BaseRoute = "/api/ChangeLog";
|
2024-12-02 18:14:45 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Импорт с заменой: удаление старых строк и добавление новых
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="idDiscriminator"></param>
|
|
|
|
|
/// <param name="dtos"></param>
|
|
|
|
|
/// <returns></returns>
|
2024-12-06 16:19:42 +05:00
|
|
|
|
[Post($"{BaseRoute}/replace/{{idDiscriminator}}")]
|
2024-12-05 11:01:00 +05:00
|
|
|
|
Task<IApiResponse<int>> ClearAndAddRange(Guid idDiscriminator, IEnumerable<DataWithWellDepthAndSectionDto> dtos);
|
2024-12-02 18:14:45 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
2024-12-03 11:35:58 +05:00
|
|
|
|
/// Получение актуальных данных на определенную дату (с пагинацией)
|
2024-12-02 18:14:45 +05:00
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="idDiscriminator"></param>
|
|
|
|
|
/// <param name="moment"></param>
|
2024-12-05 11:01:00 +05:00
|
|
|
|
/// <param name="filterRequest">параметры запроса фильтрации</param>
|
|
|
|
|
/// <param name="paginationRequest">параметры запроса пагинации</param>
|
2024-12-02 18:14:45 +05:00
|
|
|
|
/// <returns></returns>
|
2024-12-06 16:19:42 +05:00
|
|
|
|
[Get($"{BaseRoute}/moment/{{idDiscriminator}}")]
|
2024-12-05 11:01:00 +05:00
|
|
|
|
Task<IApiResponse<PaginationContainer<DataWithWellDepthAndSectionDto>>> GetByDate(
|
2024-12-06 16:19:42 +05:00
|
|
|
|
Guid idDiscriminator,
|
|
|
|
|
DateTimeOffset moment,
|
2024-12-05 11:01:00 +05:00
|
|
|
|
[Query] SectionPartRequest filterRequest,
|
|
|
|
|
[Query] PaginationRequest paginationRequest);
|
2024-12-02 18:14:45 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получение исторических данных за определенный период времени
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="idDiscriminator"></param>
|
|
|
|
|
/// <param name="dateBegin"></param>
|
|
|
|
|
/// <param name="dateEnd"></param>
|
|
|
|
|
/// <returns></returns>
|
2024-12-06 16:19:42 +05:00
|
|
|
|
[Get($"{BaseRoute}/history/{{idDiscriminator}}")]
|
2024-12-03 17:36:41 +05:00
|
|
|
|
Task<IApiResponse<IEnumerable<ChangeLogDto>>> GetChangeLogForInterval(Guid idDiscriminator, DateTimeOffset dateBegin, DateTimeOffset dateEnd);
|
2024-12-02 18:14:45 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Добавить одну запись
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="idDiscriminator"></param>
|
|
|
|
|
/// <param name="dto"></param>
|
|
|
|
|
/// <returns></returns>
|
2024-12-06 16:19:42 +05:00
|
|
|
|
[Post($"{BaseRoute}/{{idDiscriminator}}")]
|
2024-12-02 18:14:45 +05:00
|
|
|
|
Task<IApiResponse<int>> Add(Guid idDiscriminator, DataWithWellDepthAndSectionDto dto);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Добавить несколько записей
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="idDiscriminator"></param>
|
|
|
|
|
/// <param name="dtos"></param>
|
|
|
|
|
/// <returns></returns>
|
2024-12-06 16:19:42 +05:00
|
|
|
|
[Post($"{BaseRoute}/range/{{idDiscriminator}}")]
|
2024-12-02 18:14:45 +05:00
|
|
|
|
Task<IApiResponse<int>> AddRange(Guid idDiscriminator, IEnumerable<DataWithWellDepthAndSectionDto> dtos);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Обновить одну запись
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dto"></param>
|
|
|
|
|
/// <returns></returns>
|
2024-12-06 16:34:34 +05:00
|
|
|
|
[Put($"{BaseRoute}")]
|
|
|
|
|
Task<IApiResponse<int>> Update(DataWithWellDepthAndSectionDto dto);
|
2024-12-02 18:14:45 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Обновить несколько записей
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dtos"></param>
|
|
|
|
|
/// <returns></returns>
|
2024-12-06 16:34:34 +05:00
|
|
|
|
[Put($"{BaseRoute}/range")]
|
|
|
|
|
Task<IApiResponse<int>> UpdateRange(IEnumerable<DataWithWellDepthAndSectionDto> dtos);
|
2024-12-02 18:14:45 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Удалить одну запись
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Delete($"{BaseRoute}")]
|
|
|
|
|
Task<IApiResponse<int>> Delete(Guid id);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Удалить несколько записей
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="ids"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Delete($"{BaseRoute}/range")]
|
|
|
|
|
Task<IApiResponse<int>> DeleteRange([Body] IEnumerable<Guid> ids);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получение списка дат, в которые происходили изменения (день, месяц, год, без времени)
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="idDiscriminator"></param>
|
|
|
|
|
/// <returns></returns>
|
2024-12-06 16:34:34 +05:00
|
|
|
|
[Get($"{BaseRoute}/datesRange/{{idDiscriminator}}")]
|
2024-12-02 18:14:45 +05:00
|
|
|
|
Task<IApiResponse<DatesRangeDto?>> GetDatesRange(Guid idDiscriminator);
|
|
|
|
|
|
|
|
|
|
}
|