using DD.Persistence.Models; namespace DD.Persistence.Repositories; /// <summary> /// Интерфейс по работе с уставками /// </summary> public interface ISetpointRepository { /// <summary> /// Получить значения уставок по набору ключей /// </summary> /// <param name="setpointKeys"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<SetpointValueDto>> GetCurrent(IEnumerable<Guid> setpointKeys, CancellationToken token); /// <summary> /// Получить значения уставок за определенный момент времени /// </summary> /// <param name="setpointKeys"></param> /// <param name="historyMoment">дата, на которую получаем данные</param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<SetpointValueDto>> GetHistory(IEnumerable<Guid> setpointKeys, DateTimeOffset historyMoment, CancellationToken token); /// <summary> /// Получить историю изменений значений уставок /// </summary> /// <param name="setpointKeys"></param> /// <param name="token"></param> /// <returns></returns> Task<Dictionary<Guid, IEnumerable<SetpointLogDto>>> GetLog(IEnumerable<Guid> setpointKeys, CancellationToken token); /// <summary> /// Получить порцию записей, начиная с заданной даты /// </summary> /// <param name="dateBegin"></param> /// <param name="take"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<SetpointLogDto>> GetPart(DateTimeOffset dateBegin, int take, CancellationToken token); /// <summary> /// Получить диапазон дат, для которых есть данные в репозитории /// </summary> /// <param name="token"></param> /// <returns></returns> Task<DatesRangeDto> GetDatesRangeAsync(CancellationToken token); /// <summary> /// Метод сохранения уставки /// </summary> /// <param name="setpointKey">ключ операции</param> /// <param name="idUser">ключ пользователя</param> /// <param name="newValue">значение</param> /// <param name="token"></param> /// <returns></returns> /// to do /// id User учесть в соответствующем методе репозитория Task Add(Guid setpointKey, object newValue, Guid idUser, CancellationToken token); }