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