using DD.Persistence.Models; using DD.Persistence.Models.Common; namespace DD.Persistence.Client.Clients.Interfaces; /// /// Клиент для работы с репозиторием для хранения разных наборов данных рядов. /// discriminatorId - идентифицирует конкретный набор данных, прим.: циклы измерения АСИБР, или отчет о DrillTest. /// discriminatorId формируют клиенты и только им известно что они обозначают. /// public interface ITimestampedValuesClient : IDisposable { /// /// Записать новые данные /// Предполагается что данные с одним дискриминатором имеют одинаковую структуру /// /// Дискриминатор (идентификатор) набора /// /// Task AddRange(Guid discriminatorId, IEnumerable dtos, CancellationToken token); /// /// Получить данные с фильтрацией. Значение фильтра null - отключен /// /// Дискриминатор (идентификатор) набора /// Фильтр позднее даты /// Фильтр свойств набора /// /// /// Task> Get(Guid discriminatorId, DateTimeOffset? timestampBegin, IEnumerable? columnNames, int skip, int take, CancellationToken token); /// /// Получить данные, начиная с заданной отметки времени /// /// Дискриминатор (идентификатор) набора /// Фильтр позднее даты /// Task> GetGtDate(Guid discriminatorId, DateTimeOffset timestampBegin, CancellationToken token); /// /// Получить данные с начала /// /// Дискриминатор (идентификатор) набора /// /// Task> GetFirst(Guid discriminatorId, int take, CancellationToken token); /// /// Получить данные с конца /// /// Дискриминатор (идентификатор) набора /// /// Task> GetLast(Guid discriminatorId, int take, CancellationToken token); /// /// Получить данные с прореживанием, удовлетворяющем диапазону дат /// /// Дискриминатор (идентификатор) набора /// /// /// /// Task> GetResampledData(Guid discriminatorId, DateTimeOffset timestampBegin, double intervalSec = 600d, int approxPointsCount = 1024, CancellationToken token = default); /// /// Количество записей по указанному набору в БД. Для пагинации /// /// Дискриминатор (идентификатор) набора /// Task Count(Guid discriminatorId, CancellationToken token); /// /// Диапазон дат, в пределах которых осуществляется хранение данных /// /// Дискриминатор (идентификатор) набора /// Task GetDatesRange(Guid discriminatorId, CancellationToken token); }