using DD.Persistence.Models; using DD.Persistence.Models.Common; using Refit; namespace DD.Persistence.Client.Clients.Interfaces.Refit; /// /// Refit интерфейс для TimestampedValuesController /// public interface IRefitTimestampedValuesClient : IRefitClient, IDisposable { private const string baseUrl = "/api/TimestampedValues/{discriminatorId}"; /// /// Записать новые данные /// [Post(baseUrl)] Task> AddRange(Guid discriminatorId, IEnumerable dtos, CancellationToken token); /// /// Получение данных с фильтрацией /// [Get(baseUrl)] Task>> Get(Guid discriminatorId, DateTimeOffset? timestampBegin, [Query(CollectionFormat.Multi)] IEnumerable? columnNames, int skip, int take, CancellationToken token); /// /// Получить данные, начиная с заданной отметки времени /// [Get($"{baseUrl}/gtdate")] Task>> GetGtDate(Guid discriminatorId, DateTimeOffset timestampBegin, CancellationToken token); /// /// Получить данные c начала /// [Get($"{baseUrl}/first")] Task>> GetFirst(Guid discriminatorId, int take, CancellationToken token); /// /// Получить данные c конца /// [Get($"{baseUrl}/last")] Task>> GetLast(Guid discriminatorId, int take, CancellationToken token); /// /// Получить список объектов с прореживанием, удовлетворяющий диапазону временных отметок /// [Get($"{baseUrl}/resampled")] Task>> GetResampledData(Guid discriminatorId, DateTimeOffset timestampBegin, double intervalSec = 600d, int approxPointsCount = 1024, CancellationToken token = default); /// /// Получить количество записей по указанному набору в БД. Для пагинации /// [Get($"{baseUrl}/count")] Task> Count(Guid discriminatorId, CancellationToken token); /// /// Получить диапазон дат, в пределах которых хранятся даные /// [Get($"{baseUrl}/datesRange")] Task> GetDatesRange(Guid discriminatorId, CancellationToken token); }