using Persistence.Models; using Persistence.Models.Requests; using Refit; namespace Persistence.Client.Clients; /// /// Интерфейс для тестирования API, предназначенного для работы с записями ChangeLod /// public interface IChangeLogClient { private const string BaseRoute = "/api/ChangeLog"; /// /// Импорт с заменой: удаление старых строк и добавление новых /// /// /// /// [Post($"{BaseRoute}/replace")] Task> ClearAndAddRange(Guid idDiscriminator, IEnumerable dtos); /// /// Получение актуальных данных на определенную дату (с пагинацией) /// /// /// /// параметры запроса фильтрации /// параметры запроса пагинации /// [Get($"{BaseRoute}/moment")] Task>> GetByDate( Guid idDiscriminator, DateTimeOffset moment, [Query] SectionPartRequest filterRequest, [Query] PaginationRequest paginationRequest); /// /// Получение исторических данных за определенный период времени /// /// /// /// /// [Get($"{BaseRoute}/history")] Task>> GetChangeLogForInterval(Guid idDiscriminator, DateTimeOffset dateBegin, DateTimeOffset dateEnd); /// /// Добавить одну запись /// /// /// /// [Post($"{BaseRoute}")] Task> Add(Guid idDiscriminator, DataWithWellDepthAndSectionDto dto); /// /// Добавить несколько записей /// /// /// /// [Post($"{BaseRoute}/range")] Task> AddRange(Guid idDiscriminator, IEnumerable dtos); /// /// Обновить одну запись /// /// /// /// [Put($"{BaseRoute}")] Task> Update(Guid idDiscriminator, DataWithWellDepthAndSectionDto dto); /// /// Обновить несколько записей /// /// /// /// [Put($"{BaseRoute}/range")] Task> UpdateRange(Guid idDiscriminator, IEnumerable dtos); /// /// Удалить одну запись /// /// /// [Delete($"{BaseRoute}")] Task> Delete(Guid id); /// /// Удалить несколько записей /// /// /// [Delete($"{BaseRoute}/range")] Task> DeleteRange([Body] IEnumerable ids); /// /// Получение списка дат, в которые происходили изменения (день, месяц, год, без времени) /// /// /// [Get($"{BaseRoute}/datesRange")] Task> GetDatesRange(Guid idDiscriminator); }