using System; 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; }