using AsbCloudApp.ValidationAttributes; using System; using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data { /// /// Операции на скважине (заведенные пользователем) /// public class WellOperationDto : ItemInfoDto, IId, IWellRelated { /// public int Id { get; set; } /// [Required] public int IdWell { get; set; } /// /// id секции скважины /// [Required] public int IdWellSectionType { get; set; } /// /// название секции скважины /// public string? WellSectionTypeName { get; set; } /// /// id категории операции /// [Required] [Range(5000, int.MaxValue)] public int IdCategory { get; set; } /// /// id плановой операции для сопоставления /// public int? IdPlan { get; set; } /// /// название категории операции /// public string? CategoryName { get; set; } /// /// ключ родителя у категории /// public int? IdParentCategory { get; set; } /// /// дополнительная информация по операции /// [StringLength(8192)] public string? CategoryInfo { get; set; } /// /// 0 = план или 1 = факт или прогноз = 2 /// [Required] public int IdType { get; set; } /// /// Глубина на начало операции, м /// [Range(0, 50_000)] public double DepthStart { get; set; } /// /// Глубина после завершения операции, м /// [Range(0, 50_000)] public double DepthEnd { get; set; } /// /// Кол-во дней от даты начала первой плановой (а если её нет, то фактической) операции /// public double Day { get; set; } /// /// Кол-во часов НПВ от даты начала первой плановой (а если её нет, то фактической) операции /// public double NptHours { get; set; } /// /// Дата начала операции /// [DateValidation(GtDate = "2010-01-01T00:00:00")] public DateTime DateStart { get; set; } /// /// Продолжительность, часы /// [Range(0, 50)] public double DurationHours { get; set; } /// /// Полезный комментарий /// [StringLength(4096, ErrorMessage = "Комментарий не может быть длиннее 4096 символов")] public string? Comment { get; set; } } }