using System; using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.ProcessMap { /// <summary> /// РТК /// </summary> public class ProcessMapPlanDto : IId, IWellRelated { /// <inheritdoc/> public int Id { get; set; } /// <inheritdoc/> [Range(1, int.MaxValue, ErrorMessage = "Id скважины не может быть меньше 1")] public int IdWell { get; set; } /// <summary> /// Id пользователя, поле заполнять не нужно, подставляется автоматически /// </summary> public int? IdUser { get; set; } /// <summary> /// Id режима 1-ротор, 2 - слайд /// </summary> [Range(0, 2, ErrorMessage = "Id режима должен быть либо 0-ручной либо, 1-ротор либо 2-слайд")] public int IdMode { get; set; } /// <summary> /// Тип секции /// </summary> public int IdWellSectionType { get; set; } /// <summary> /// Дата последнего изменения /// </summary> public DateTimeOffset LastUpdate { get; set; } /// <summary> /// Стартовая глубина /// </summary> [Range(0, 50000, ErrorMessage = "Глубина не может быть отрицательной")] public double DepthStart { get; set; } /// <summary> /// Глубина окончания интервала /// </summary> [Range(0, 50000, ErrorMessage = "Глубина не может быть отрицательной")] public double DepthEnd { get; set; } /// <summary> /// Нагрузка /// </summary> public PlanLimitDto AxialLoad { get; set; } = null!; /// <summary> /// Перепад давления /// </summary> public PlanLimitDto Pressure { get; set; } = null!; /// <summary> /// Момент на ВСП /// </summary> public PlanLimitDto TopDriveTorque { get; set; } = null!; /// <summary> /// Обороты на ВСП /// </summary> public PlanLimitDto TopDriveSpeed { get; set; } = null!; /// <summary> /// Расход /// </summary> public PlanLimitDto Flow { get; set; } = null!; /// <summary> /// Плановая механическая скорость, м/ч /// </summary> public double RopPlan { get; set; } /// <summary> /// Плановый процент использования АКБ /// </summary> public double UsageSaub { get; set; } /// <summary> /// Плановый процент использования spin master /// </summary> public double UsageSpin { get; set; } } }