using DD.Persistence.Models; namespace DD.Persistence.Client.Clients.Interfaces; /// <summary> /// Клиент для работы с временными данными /// </summary> /// <typeparam name="TDto"></typeparam> public interface ITimeSeriesClient<TDto> : IDisposable where TDto : class, ITimeSeriesAbstractDto { /// <summary> /// Добавление записей /// </summary> /// <param name="dtos"></param> /// <param name="token"></param> /// <returns></returns> Task<int> AddRange(IEnumerable<TDto> dtos, CancellationToken token); /// <summary> /// Получить список объектов, удовлетворяющий диапазону дат /// </summary> /// <param name="dateBegin"></param> /// <param name="dateEnd"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<TDto>> Get(DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token); /// <summary> /// Получить диапазон дат, для которых есть данные в репозитории /// </summary> /// <param name="token"></param> /// <returns></returns> Task<DatesRangeDto?> GetDatesRange(CancellationToken token); /// <summary> /// Получить список объектов с прореживанием, удовлетворяющий диапазону дат /// </summary> /// <param name="dateBegin"></param> /// <param name="intervalSec"></param> /// <param name="approxPointsCount"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<TDto>> GetResampledData(DateTimeOffset dateBegin, double intervalSec = 600, int approxPointsCount = 1024, CancellationToken token = default); }