using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace AsbCloudApp.Data.ProcessMaps;

/// <summary>
/// РТК план проработка для слайда
/// </summary>
public class ProcessMapPlanOperationReamingSlideDto : ProcessMapPlanBaseDto
{
    /// <summary>
    /// Максимальное давление, атм
    /// </summary>
    [Range(0.0, 400.0)]
    public double MaxPressure { get; set; }

    /// <summary>
    /// Перепад давления, атм.
    /// </summary>
    [Range(0.0, 60.0)]
    public double DifferentialPressure { get; set; }

    /// <summary>
    /// Уставки, т., затяжка
    /// </summary>
    [Range(0.0, 20.0)]
    public double SetpointsTight { get; set; }

    /// <summary>
    /// Уставки, т., посадка
    /// </summary>
    [Range(0.0, 20.0)]
    public double SetpointsSlackingOff { get; set; }

    /// <summary>
    /// Максимально допустимый момент, кН*м.
    /// </summary>
    [Range(0.0, 35.0)]
    public double MaxTorque { get; set; }

    /// <summary>
    /// Проработка 1, Количество повторений, шт.
    /// </summary>
    [Range(0.0, 99.0)]
    public double Reaming1NumberOfRepetitions { get; set; }

    /// <summary>
    /// Проработка 1, Скорость, м/ч., Вверх
    /// </summary>
    [Range(0.0, 999.0)]
    public double Reaming1ROPUp { get; set; }

    /// <summary>
    /// Проработка 1, Скорость, м/ч., Вниз
    /// </summary>
    [Range(0.0, 999.0)]
    public double Reaming1ROPDown { get; set; }

    /// <summary>
    /// Проработка 1, Обороты, об/мин., Вверх
    /// </summary>
    [Range(0.0, 270.0)]
    public double Reaming1RPMUp { get; set; }

    /// <summary>
    /// Проработка 1, Обороты, об/мин., Вниз
    /// </summary>
    [Range(0.0, 270.0)]
    public double Reaming1RPMDown { get; set; }

    /// <summary>
    /// Проработка 1, Расход, л/с., Вверх
    /// </summary>
    [Range(0.0, 100.0)]
    public double Reaming1FlowRateUp { get; set; }

    /// <summary>
    /// Проработка 1, Расход, л/с., Вниз
    /// </summary>
    [Range(0.0, 100.0)]
    public double Reaming1FlowRateDown { get; set; }

    /// <summary>
    /// Проработка 1, Интервал проработки, м.
    /// </summary>
    [Range(0.0, 30.0)]
    public double Reaming1Interval { get; set; }

    /// <summary>
    /// Остановка над забоем, м.
    /// </summary>
    [Range(0.0, 10.0)]
    public double Reaming1StopPointOffBottom { get; set; }

    /// <summary>
    /// Проработка 2, Количество повторений, шт.
    /// </summary>
    [Range(0.0, 99.0)]
    public double Reaming2NumberOfRepetitions { get; set; }

    /// <summary>
    /// Проработка 2, Скорость, м/ч., Вверх
    /// </summary>
    [Range(0.0, 999.0)]
    public double Reaming2ROPUp { get; set; }

    /// <summary>
    /// Проработка 2, Скорость, м/ч., Вниз
    /// </summary>
    [Range(0.0, 999.0)]
    public double Reaming2ROPDown { get; set; }

    /// <summary>
    /// Проработка 2, Обороты, об/мин., Вверх
    /// </summary>
    [Range(0.0, 270.0)]
    public double Reaming2RPMUp { get; set; }

    /// <summary>
    /// Проработка 2, Обороты, об/мин., Вниз
    /// </summary>
    [Range(0.0, 270.0)]
    public double Reaming2RPMDown { get; set; }

    /// <summary>
    /// Проработка 2, Расход, л/с., Вверх
    /// </summary>
    [Range(0.0, 100.0)]
    public double Reaming2FlowRateUp { get; set; }

    /// <summary>
    /// Проработка 2, Расход, л/с., Вниз
    /// </summary>
    [Range(0.0, 100.0)]
    public double Reaming2FlowRateDown { get; set; }

    /// <summary>
    /// Проработка 2, Интервал проработки, м.
    /// </summary>
    [Range(0.0, 30.0)]
    public double Reaming2Interval { get; set; }

    /// <summary>
    /// Остановка над забоем, м.
    /// </summary>
    [Range(0.0, 10.0)]
    public double Reaming2StopPointOffBottom { get; set; }

    /// <summary>
    /// Проработка 3, Количество повторений, шт.
    /// </summary>
    [Range(0.0, 99.0)]
    public double Reaming3NumberOfRepetitions { get; set; }

    /// <summary>
    /// Проработка 3, Скорость, м/ч., Вверх
    /// </summary>
    [Range(0.0, 999.0)]
    public double Reaming3ROPUp { get; set; }

    /// <summary>
    /// Проработка 3, Скорость, м/ч., Вниз
    /// </summary>
    [Range(0.0, 999.0)]
    public double Reaming3ROPDown { get; set; }

    /// <summary>
    /// Проработка 3, Обороты, об/мин., Вверх
    /// </summary>
    [Range(0.0, 270.0)]
    public double Reaming3RPMUp { get; set; }

    /// <summary>
    /// Проработка 3, Обороты, об/мин., Вниз
    /// </summary>
    [Range(0.0, 270.0)]
    public double Reaming3RPMDown { get; set; }

    /// <summary>
    /// Проработка 3, Расход, л/с., Вверх
    /// </summary>
    [Range(0.0, 100.0)]
    public double Reaming3FlowRateUp { get; set; }

    /// <summary>
    /// Проработка 3, Расход, л/с., Вниз
    /// </summary>
    [Range(0.0, 100.0)]
    public double Reaming3FlowRateDown { get; set; }

    /// <summary>
    /// Проработка 3, Интервал проработки, м.
    /// </summary>
    [Range(0.0, 30.0)]
    public double Reaming3Interval { get; set; }

    /// <summary>
    /// Остановка над забоем, м.
    /// </summary>
    [Range(0.0, 10.0)]
    public double Reaming3StopPointOffBottom { get; set; }

    /// <summary>
    /// Примечание
    /// </summary>
    [StringLength(1024)]
    public string Note { get; set; } = string.Empty;


}