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