using System.ComponentModel.DataAnnotations;

namespace AsbCloudApp.Data.ProcessMaps.Operations;

/// <summary>
/// РТК план бурение скважины в слайде
/// </summary>
public class ProcessMapPlanSlideDto : ProcessMapPlanBaseDto
{
    /// <summary>
    /// Максимально допустимая скорость, м/ч
    /// </summary>
    [Range(0, 800, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800")]
    public double RopMax { get; set; }

    /// <summary>
    /// Максимально допустимое давление, атм
    /// </summary>
    [Range(0, 400, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")]
    public double PressureMax { get; set; }

    /// <summary>
    /// Перепад давления уставка, атм
    /// </summary>
    [Range(0, 60, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")]
    public double DifferentialPressure { get; set; }

    /// <summary>
    /// Перепад давления ограничение, атм
    /// </summary>
    [Range(0, 60, ErrorMessage = "Перепад давления ограничение, атм., должно быть в пределах от 0 до 60")]
    public double DifferentialPressureMax { get; set; }

    /// <summary>
    /// Нагрузка уставка, т
    /// </summary>
    [Range(0, 99, ErrorMessage = "Нагрузка уставка, т., должно быть в пределах от 0 до 99")]
    public double WeightOnBit { get; set; }

    /// <summary>
    /// Нагрузка ограничение, т
    /// </summary>
    [Range(0, 99, ErrorMessage = "Нагрузка ограничение, т., должно быть в пределах от 0 до 99")]
    public double WeightOnBitMax { get; set; }

    /// <summary>
    /// Расход уставка л/с
    /// </summary>
    [Range(0, 100, ErrorMessage = "Расход уставка л/с., должно быть в пределах от 0 до 100")]
    public double FlowRate { get; set; }

    /// <summary>
    /// Расход ограничение л/с
    /// </summary>
    [Range(0, 100, ErrorMessage = "Расход ограничение л/с., должно быть в пределах от 0 до 100")]
    public double FlowRateMax { get; set; }

    /// <summary>
    /// Расчётная пружина, градус
    /// </summary>
    [Range(0, 9999, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999")]
    public double Spring { get; set; }

    /// <summary>
    /// Складывание инструмента, м
    /// </summary>
    [Range(0, 9999, ErrorMessage = "Складывание инструмента, м., должно быть в пределах от 0 до 9999")]
    public double Buckling { get; set; }

    /// <summary>
    /// Примечание
    /// </summary>
    [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")]
    public string Note { get; set; } = string.Empty;
}