2024-07-04 11:02:45 +05:00
|
|
|
|
using System;
|
2023-09-11 12:27:48 +05:00
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
|
|
|
|
|
namespace AsbCloudApp.Requests;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Параметры запроса телеметрии
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class TelemetryDataRequest
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Максимально допустимое кол-во строк данных
|
|
|
|
|
/// </summary>
|
|
|
|
|
public const int MaxTake = 3072;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// greater or equal then Date
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DateTimeOffset? GeDate { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// less or equal then Date
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DateTimeOffset? LeDate { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Делитель для прореживания выборки.
|
|
|
|
|
/// <list type="bullet">
|
|
|
|
|
/// <item>1 - без прореживания (default); </item>
|
|
|
|
|
/// <item>2 - каждое 2-е значение; </item>
|
|
|
|
|
/// <item>10 - каждое 10-е значение; </item>
|
|
|
|
|
/// </list>
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Range(0, 300)]
|
|
|
|
|
public int Divider { get; set; } = 1;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// сортировка/выравнивание данных в запросе по дате
|
|
|
|
|
/// <list type="bullet">
|
|
|
|
|
/// <item>0 - более ранние данные вперед; </item>
|
|
|
|
|
/// <item>1 - более поздние данные вперед; </item>
|
|
|
|
|
/// </list>
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Range(0, 1)]
|
|
|
|
|
public int Order { get; set; } = 0;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Пропустить с начала
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Range(0, int.MaxValue)]
|
|
|
|
|
public int Skip { get; set; } = 0;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Кол-во возвращаемых, но не больше MaxTake
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Range(1, MaxTake)]
|
|
|
|
|
public int Take { get; set; } = 1024;
|
|
|
|
|
}
|