using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using AsbCloudApp.Data.User; namespace AsbCloudApp.Data.SAUB { /// <summary> /// DTO запроса для предложения по изменению уставок на панели оператора /// </summary> public class SetpointsRequestDto : IId, IWellRelated { /// <inheritdoc/> [Required] public int Id { get; set; } /// <inheritdoc/> [Required] public int IdWell { get; set; } /// <summary> /// Id автора запроса /// </summary> [Required] public int IdAuthor { get; set; } /// <summary> /// текущее состояние запроса 0: неизвестно, 1:ожидает отправки, 2: отправлено, 3: принято оператором, 4: отклонено оператором, 5: устарело /// </summary> [Required] public int IdState { get; set; } /// <summary> /// отметка времени создания запроса /// </summary> public DateTime UploadDate { get; set; } = DateTime.Now; /// <summary> /// время в секундах актуальности этого запроса /// </summary> [Required] [Range(10 * 60, 4 * 60 * 60)] public int ObsolescenceSec { get; set; } = 10 * 60; /// <summary> /// набор уставок: {"название переменной панели"; "рекомендуемое значение"} /// </summary> [Required] public Dictionary<string, double> Setpoints { get; set; } = new(); /// <summary> /// Комментарий для оператора панели /// </summary> public string? Comment { get; set; } /// <summary> /// DTO скважины /// </summary> public WellDto? Well { get; set; } /// <summary> /// DTO автора /// </summary> public UserDto? Author { get; set; } } }