using System.ComponentModel.DataAnnotations;

namespace AsbCloudApp.Data.ProcessMaps;

/// <summary>
/// РТК план бурение скважины
/// </summary>
public class ProcessMapPlanWellDrillingDto : ProcessMapPlanBaseDto
{
    /// <summary>
    /// Id режима 0-ручной, 1-ротор, 2 - слайд
    /// </summary>        
    [Range(0, 2, ErrorMessage = "Id режима должен быть либо 0-ручной либо, 1-ротор либо 2-слайд")]
    public int IdMode { 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>
    [Range(0, 99999.9, ErrorMessage = "Плановая механическая скорость должно быть в пределах от 0 до 99999.9")]
    public double RopPlan { get; set; }

    /// <summary>
    /// Плановый процент использования АКБ
    /// </summary>
    [Range(0, 100, ErrorMessage = "Процент использования АКБ должен быть в пределах от 0 до 100")]
    public double UsageSaub { get; set; }

    /// <summary>
    /// Плановый процент использования spin master
    /// </summary>
    [Range(0, 100, ErrorMessage = "Процент использования spin master должен быть в пределах от 0 до 100")]
    public double UsageSpin { get; set; }
}