using Persistence.Models; using Persistence.Models.Requests; namespace Persistence.Client.Clients.Interfaces; /// <summary> /// Клиент для работы с технологическими сообщениями /// </summary> public interface ITechMessagesClient : IDisposable { /// <summary> /// Добавить новые технологические сообщения /// </summary> /// <param name="dtos"></param> /// <param name="token"></param> /// <returns></returns> Task<int> AddRange(IEnumerable<TechMessageDto> dtos, CancellationToken token); /// <summary> /// Получить диапазон дат, для которых есть данные в репозитории /// </summary> /// <param name="token"></param> /// <returns></returns> Task<DatesRangeDto> GetDatesRangeAsync(CancellationToken token); /// <summary> /// Получить список технологических сообщений в виде страницы /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<PaginationContainer<TechMessageDto>> GetPage(PaginationRequest request, CancellationToken token); /// <summary> /// Получить порцию записей, начиная с заданной даты /// </summary> /// <param name="dateBegin"></param> /// <param name="take"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<TechMessageDto>> GetPart(DateTimeOffset dateBegin, int take, CancellationToken token); /// <summary> /// Получить статистику по системам /// </summary> /// <param name="autoDrillingSystem"></param> /// <param name="categoryId"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<MessagesStatisticDto>> GetStatistics(string autoDrillingSystem, int categoryId, CancellationToken token); /// <summary> /// Получить список всех систем /// </summary> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<string>> GetSystems(CancellationToken token); }