2025-01-14 17:56:59 +05:00
|
|
|
|
using DD.Persistence.Models;
|
|
|
|
|
using DD.Persistence.Models.Common;
|
|
|
|
|
using Refit;
|
|
|
|
|
|
|
|
|
|
namespace DD.Persistence.Client.Clients.Interfaces.Refit;
|
|
|
|
|
|
2025-01-17 17:21:54 +05:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Refit интерфейс для TimestampedValuesController
|
|
|
|
|
/// </summary>
|
2025-01-14 17:56:59 +05:00
|
|
|
|
public interface IRefitTimestampedValuesClient : IRefitClient, IDisposable
|
|
|
|
|
{
|
2025-01-23 17:33:01 +05:00
|
|
|
|
private const string baseUrl = "/api/TimestampedValues";
|
2025-01-14 17:56:59 +05:00
|
|
|
|
|
2025-01-17 17:21:54 +05:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Записать новые данные
|
|
|
|
|
/// </summary>
|
2025-01-23 17:33:01 +05:00
|
|
|
|
[Post($"{baseUrl}/{{discriminatorId}}")]
|
2025-01-17 17:21:54 +05:00
|
|
|
|
Task<IApiResponse<int>> AddRange(Guid discriminatorId, IEnumerable<TimestampedValuesDto> dtos, CancellationToken token);
|
2025-01-14 17:56:59 +05:00
|
|
|
|
|
2025-01-17 17:21:54 +05:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получение данных с фильтрацией
|
|
|
|
|
/// </summary>
|
2025-01-23 17:33:01 +05:00
|
|
|
|
[Get($"{baseUrl}")]
|
|
|
|
|
Task<IApiResponse<IEnumerable<TimestampedValuesDto>>> Get([Query(CollectionFormat.Multi)] IEnumerable<Guid> discriminatorIds,
|
|
|
|
|
DateTimeOffset? timestampBegin,
|
|
|
|
|
[Query(CollectionFormat.Multi)] IEnumerable<string>? columnNames,
|
|
|
|
|
int skip,
|
|
|
|
|
int take,
|
|
|
|
|
CancellationToken token);
|
2025-01-17 17:21:54 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получить данные, начиная с заданной отметки времени
|
|
|
|
|
/// </summary>
|
2025-01-23 17:33:01 +05:00
|
|
|
|
[Get($"{baseUrl}/{{discriminatorId}}/gtdate")]
|
2025-01-17 17:21:54 +05:00
|
|
|
|
Task<IApiResponse<IEnumerable<TimestampedValuesDto>>> GetGtDate(Guid discriminatorId, DateTimeOffset timestampBegin, CancellationToken token);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получить данные c начала
|
|
|
|
|
/// </summary>
|
2025-01-23 17:33:01 +05:00
|
|
|
|
[Get($"{baseUrl}/{{discriminatorId}}/first")]
|
2025-01-17 17:21:54 +05:00
|
|
|
|
Task<IApiResponse<IEnumerable<TimestampedValuesDto>>> GetFirst(Guid discriminatorId, int take, CancellationToken token);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получить данные c конца
|
|
|
|
|
/// </summary>
|
2025-01-23 17:33:01 +05:00
|
|
|
|
[Get($"{baseUrl}/{{discriminatorId}}/last")]
|
2025-01-17 17:21:54 +05:00
|
|
|
|
Task<IApiResponse<IEnumerable<TimestampedValuesDto>>> GetLast(Guid discriminatorId, int take, CancellationToken token);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получить список объектов с прореживанием, удовлетворяющий диапазону временных отметок
|
|
|
|
|
/// </summary>
|
2025-01-23 17:33:01 +05:00
|
|
|
|
[Get($"{baseUrl}/{{discriminatorId}}/resampled")]
|
2025-01-17 17:21:54 +05:00
|
|
|
|
Task<IApiResponse<IEnumerable<TimestampedValuesDto>>> GetResampledData(Guid discriminatorId, DateTimeOffset timestampBegin, double intervalSec = 600d, int approxPointsCount = 1024, CancellationToken token = default);
|
2025-01-14 17:56:59 +05:00
|
|
|
|
|
2025-01-17 17:21:54 +05:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получить количество записей по указанному набору в БД. Для пагинации
|
|
|
|
|
/// </summary>
|
2025-01-23 17:33:01 +05:00
|
|
|
|
[Get($"{baseUrl}/{{discriminatorId}}/count")]
|
2025-01-14 17:56:59 +05:00
|
|
|
|
Task<IApiResponse<int>> Count(Guid discriminatorId, CancellationToken token);
|
|
|
|
|
|
2025-01-17 17:21:54 +05:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получить диапазон дат, в пределах которых хранятся даные
|
|
|
|
|
/// </summary>
|
2025-01-23 17:33:01 +05:00
|
|
|
|
[Get($"{baseUrl}/{{discriminatorId}}/datesRange")]
|
2025-01-14 17:56:59 +05:00
|
|
|
|
Task<IApiResponse<DatesRangeDto?>> GetDatesRange(Guid discriminatorId, CancellationToken token);
|
|
|
|
|
}
|