using Persistence.Models; using Refit; namespace Persistence.Client.Clients; /// /// Клиент для работы с репозиторием для хранения разных наборов данных рядов. /// idDiscriminator - идентифицирует конкретный набор данных, прим.: циклы измерения АСИБР, или отчет о DrillTest. /// idDiscriminator формируют клиенты и только им известно что они обозначают. /// Так как данные приходят редко, то их прореживания для построения графиков не предусмотрено. /// public interface ITimestampedSetClient { private const string baseUrl = "/api/TimestampedSet/{idDiscriminator}"; /// /// Добавление новых данных /// /// Дискриминатор (идентификатор) набора /// /// [Post(baseUrl)] Task> InsertRange(Guid idDiscriminator, IEnumerable sets); /// /// Получение данных с фильтрацией. Значение фильтра null - отключен /// /// Дискриминатор (идентификатор) набора /// Фильтр позднее даты /// Фильтр свойств набора. Можно запросить только некоторые свойства из набора /// /// /// [Get(baseUrl)] Task>> Get(Guid idDiscriminator, [Query] DateTimeOffset? geTimestamp, [Query] IEnumerable? columnNames, int skip, int take); /// /// Получить последние данные /// /// Дискриминатор (идентификатор) набора /// Фильтр свойств набора. Можно запросить только некоторые свойства из набора /// /// [Get($"{baseUrl}/last")] Task>> GetLast(Guid idDiscriminator, [Query] IEnumerable? columnNames, int take); /// /// Количество записей по указанному набору в БД. Для пагинации. /// /// Дискриминатор (идентификатор) набора /// [Get($"{baseUrl}/count")] Task> Count(Guid idDiscriminator); /// /// Диапазон дат за которые есть данные /// /// Дискриминатор (идентификатор) набора /// [Get($"{baseUrl}/datesRange")] Task> GetDatesRange(Guid idDiscriminator); }