using System;

namespace AsbCloudApp.Data
{
    /// <summary>
    /// Сообщение получаемое по телеметрии и отправляемое в frontend
    /// </summary>
    public class TelemetryDataSaubDto : ITelemetryData
    {
        public DateTime Date { get; set; }

        /// <summary>
        /// Режим работы САУБ:
        /// 0 - "РУЧНОЙ"
        /// 1 - "БУРЕНИЕ В РОТОРЕ"
        /// 2 - "ПРОРАБОТКА"
        /// 3 - "БУРЕНИЕ В СЛАЙДЕ"
        /// 4 - "СПУСК СПО"
        /// 5 - "ПОДЪЕМ СПО"
        /// 6 - "ПОДЪЕМ С ПРОРАБОТКОЙ"
        /// 10 - "БЛОКИРОВКА"
        /// </summary>
        public short? Mode { get; set; }

        /// <summary>
        /// telemetry id
        /// </summary>
        public int IdTelemetry { get; set; }

        /// <summary>
        /// telemetry user
        /// </summary>
        public string User { get; set; }

        /// <summary>
        /// Глубина забоя
        /// </summary>
        public float? WellDepth { get; set; }

        /// <summary>
        /// Глубина долота
        /// </summary>
        public float? BitDepth { get; set; }

        /// <summary>
        /// Талевый блок. Положение
        /// </summary>
        public float? BlockPosition { get; set; }

        /// <summary>
        /// Талевый блок. Мин положение
        /// </summary>
        public float? BlockPositionMin { get; set; }

        /// <summary>
        /// Талевый блок. Макс положение
        /// </summary>
        public float? BlockPositionMax { get; set; }

        /// <summary>
        /// Талевый блок. Скорость
        /// </summary>
        public float? BlockSpeed { get; set; }

        /// <summary>
        /// Талевый блок. Задание скорости
        /// </summary>
        public float? BlockSpeedSp { get; set; }

        /// <summary>
        /// Талевый блок. Задание скорости для роторного бурения
        /// </summary>
        public float? BlockSpeedSpRotor { get; set; }

        /// <summary>
        /// Талевый блок. Задание скорости для режима слайда
        /// </summary>
        public float? BlockSpeedSpSlide { get; set; }

        /// <summary>
        /// Талевый блок. Задание скорости для проработки
        /// </summary>
        public float? BlockSpeedSpDevelop { get; set; }

        /// <summary>
        /// Давление
        /// </summary>
        public float? Pressure { get; set; }

        /// <summary>
        /// Давление при холостом ходе.
        /// </summary>
        public float? PressureIdle { get; set; }

        public float? PressureSp { get; set; }

        public float? PressureSpRotor { get; set; }

        public float? PressureSpSlide { get; set; }

        public float? PressureSpDevelop { get; set; }

        public float? PressureDeltaLimitMax { get; set; }

        public float? AxialLoad { get; set; }

        public float? AxialLoadSp { get; set; }

        public float? AxialLoadLimitMax { get; set; }

        public float? HookWeight { get; set; }

        public float? HookWeightIdle { get; set; }

        public float? HookWeightLimitMin { get; set; }

        public float? HookWeightLimitMax { get; set; }

        public float? RotorTorque { get; set; }

        public float? RotorTorqueIdle { get; set; }

        public float? RotorTorqueSp { get; set; }

        public float? RotorTorqueLimitMax { get; set; }

        public float? RotorSpeed { get; set; }

        public float? Flow { get; set; }

        public float? FlowIdle { get; set; }

        public float? FlowDeltaLimitMax { get; set; }

        /// <summary>
        /// id текущего критерия бурения
        /// </summary>
        public short? IdFeedRegulator { get; set; }

        /// <summary>
        /// Текущее состояние работы MSE
        /// </summary>
        public short? MseState { get; set; }
    }
}