using Microsoft.EntityFrameworkCore; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Text.Json.Serialization; using System; namespace AsbCloudDb.Model { #nullable enable [Table("t_well_operation_category"), Comment("Справочник операций на скважине")] public class WellOperationCategory : IId { #region constants category operations ids /// /// БУРЕНИЕ /// public const int IdDrilling = 3000; /// /// Непроизводительное время (НПВ) /// public const int IdNonProductiveTime = 3005; /// /// Механическое. бурение /// public const int IdMechanicalDrilling = 4001; /// /// Разборка КНБК /// public const int IdBhaDisassembly = 5000; /// /// Сборка КНБК /// public const int IdBhaAssembly = 5001; /// /// Направленно (СЛАЙД) /// public const int IdSlide = 5002; /// /// Ротором (РУС) /// public const int IdRotor = 5003; /// /// Замер ЗТС (запись MWD) /// public const int IdStaticSurveying = 5004; /// /// Промывка перед наращиванием /// public const int IdFlashingBeforeConnection = 5005; /// /// Проработка перед наращиванием /// public const int IdDevelopment = 5007; /// /// Шаблонировка во время бурения /// public const int IdTemplatingWhileDrilling = 5008; /// /// Шаблонировка перед наращиванием /// public const int IdTemplating = 5009; /// /// Удержание в клиньях /// public const int IdSlipsTime = 5011; /// /// Подъем КНБК /// public const int IdBhaUp = 5013; /// /// Спуск КНБК /// public const int IdBhaDown = 5015; /// /// Спуск ОК /// public const int IdCasingDown = 5017; /// /// Промывка /// public const int IdFlashing = 5036; /// /// Ремонт бурового оборудования /// public const int IdEquipmentRepair = 5058; /// /// Список всех категорий НПВ /// public static readonly int[] NonProductiveTimeSubIds = { IdEquipmentRepair, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 4014, 4015, 4016, 4017, IdNonProductiveTime, }; public static readonly int[] MechanicalDrillingSubIds = { IdRotor, IdSlide, IdMechanicalDrilling, }; #endregion [Key] [Column("id")] public int Id { get; set; } [Column("name"), Comment("Название категории операции")] public string Name { get; set; } = null!; [Column("id_parent"), Comment("id родительской категории")] public int? IdParent { get; set; } [Column("key_value_name"), Comment("Название ключевого показателя операции"), StringLength(32)] public string? KeyValueName { get; set; } [Column("key_value_units"), Comment("Единицы измерения ключевого показателя операции"), StringLength(16)] public string? KeyValueUnits { get; set; } [JsonIgnore] [ForeignKey(nameof(IdParent))] public virtual WellOperationCategory? Parent { get; set; } = null!; } #nullable disable }