80 lines
3.2 KiB
C#
80 lines
3.2 KiB
C#
using DD.Persistence.Models;
|
||
using DD.Persistence.Models.Common;
|
||
using DD.Persistence.Models.Requests;
|
||
using Refit;
|
||
|
||
namespace DD.Persistence.Client.Clients.Interfaces.Refit;
|
||
|
||
/// <summary>
|
||
/// Refit интерфейс для IRefitChangeLogClient
|
||
/// </summary>
|
||
public interface IRefitChangeLogClient : IRefitClient, IDisposable
|
||
{
|
||
private const string BaseRoute = "/api/ChangeLog";
|
||
|
||
/// <summary>
|
||
/// Импорт с заменой: удаление старых строк и добавление новых
|
||
/// </summary>
|
||
[Post($"{BaseRoute}/replace/{{idDiscriminator}}")]
|
||
Task<IApiResponse<int>> ClearAndAddRange(Guid idDiscriminator, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Получение актуальных данных на определенную дату (с пагинацией)
|
||
/// </summary>
|
||
[Get($"{BaseRoute}/moment/{{idDiscriminator}}")]
|
||
Task<IApiResponse<PaginationContainer<ChangeLogValuesDto>>> GetByDate(
|
||
Guid idDiscriminator,
|
||
DateTimeOffset moment,
|
||
[Query] PaginationRequest paginationRequest,
|
||
CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Получение исторических данных за определенный период времени
|
||
/// </summary>
|
||
[Get($"{BaseRoute}/history/{{idDiscriminator}}")]
|
||
Task<IApiResponse<IEnumerable<ChangeLogDto>>> GetChangeLogForInterval(Guid idDiscriminator, DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Добавить одну запись
|
||
/// </summary>
|
||
[Post($"{BaseRoute}/{{idDiscriminator}}")]
|
||
Task<IApiResponse<int>> Add(Guid idDiscriminator, ChangeLogValuesDto dto, CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Добавить несколько записей
|
||
/// </summary>
|
||
[Post($"{BaseRoute}/range/{{idDiscriminator}}")]
|
||
Task<IApiResponse<int>> AddRange(Guid idDiscriminator, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Обновить одну запись
|
||
/// </summary>
|
||
[Put($"{BaseRoute}")]
|
||
Task<IApiResponse<int>> Update(ChangeLogValuesDto dto, CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Обновить несколько записей
|
||
/// </summary>
|
||
[Put($"{BaseRoute}/range")]
|
||
Task<IApiResponse<int>> UpdateRange(IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Удалить одну запись
|
||
/// </summary>
|
||
[Delete($"{BaseRoute}")]
|
||
Task<IApiResponse<int>> Delete(Guid id, CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Удалить несколько записей
|
||
/// </summary>
|
||
[Delete($"{BaseRoute}/range")]
|
||
Task<IApiResponse<int>> DeleteRange([Body] IEnumerable<Guid> ids, CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Получение списка дат, в которые происходили изменения (день, месяц, год, без времени)
|
||
/// </summary>
|
||
[Get($"{BaseRoute}/datesRange/{{idDiscriminator}}")]
|
||
Task<IApiResponse<DatesRangeDto?>> GetDatesRange(Guid idDiscriminator, CancellationToken token);
|
||
|
||
}
|