using Persistence.Models; namespace Persistence.Repositories; /// /// Репозиторий для хранения разных наборов данных временных рядов. /// idDiscriminator - идентифицирует конкретный набор данных, прим.: циклы измерения АСИБР, или отчет о DrillTest. /// idDiscriminator формируют клиенты и только им известно что они обозначают. /// Так как данные приходят редко, то их прореживания для построения графиков не предусмотрено. /// public interface ITimestampedSetRepository { /// /// Количество записей по указанному набору в БД. Для пагинации. /// /// /// /// Task Count(Guid idDiscriminator, CancellationToken token); /// /// Получение данных с фильтрацией. Значение фильтра null - отключен /// /// Дискриминатор (идентификатор) набора /// Фильтр позднее даты /// Фильтр свойств набора. Можно запросить только некоторые свойства из набора /// /// /// /// Task> Get(Guid idDiscriminator, DateTimeOffset? geTimestamp, IEnumerable? props, int skip, int take, CancellationToken token); /// /// Диапазон дат за которые есть данные /// /// /// /// Task GetDatesRange(Guid idDiscriminator, CancellationToken token); /// /// Получить последние данные /// /// Дискриминатор (идентификатор) набора /// Фильтр свойств набора. Можно запросить только некоторые свойства из набора /// /// /// Task> GetLast(Guid idDiscriminator, IEnumerable? props, int take, CancellationToken token); /// /// Добавление новых данных /// /// Дискриминатор (идентификатор) набора /// /// /// Task InsertRange(Guid idDiscriminator, IEnumerable sets, CancellationToken token); }