using DD.Persistence.Models;
using DD.Persistence.RepositoriesAbstractions;
namespace DD.Persistence.Repositories;
///
/// Репозиторий для работы с временными данными
///
public interface ITimestampedValuesRepository : ISyncRepository, ITimeSeriesBaseRepository
{
///
/// Добавление записей
///
/// Дискриминатор (идентификатор) набора
///
///
///
Task AddRange(Guid idDiscriminator, IEnumerable dtos, CancellationToken token);
///
/// Количество записей по указанному набору в БД. Для пагинации
///
/// Дискриминатор (идентификатор) набора
///
///
Task Count(Guid idDiscriminator, CancellationToken token);
///
/// Получение данных с фильтрацией. Значение фильтра null - отключен
///
/// Набор дискриминаторов (идентификаторов)
/// Фильтр позднее даты
/// Фильтр свойств набора. Можно запросить только некоторые свойства из набора
///
///
///
///
Task>> Get(IEnumerable idDiscriminators,
DateTimeOffset? geTimestamp,
IEnumerable? columnNames,
int skip,
int take,
CancellationToken token);
///
/// Получение данных с начала
///
/// Дискриминатор (идентификатор) набора
/// Количество
///
///
Task> GetFirst(Guid discriminatorId, int takeCount, CancellationToken token);
///
/// Получение данных с конца
///
/// Дискриминатор (идентификатор) набора
/// Количество
///
///
Task> GetLast(Guid discriminatorId, int takeCount, CancellationToken token);
}