using System;

namespace AsbCloudApp.Data.SAUB;

/// <summary>
/// Статистика телеметрии САУБ (усредненные значения) по интервалам глубины
/// </summary>
public class TelemetryDataSaubStatDto
{
    /// <summary>
    /// Кол-во записей в интервале
    /// </summary>
    public int Count { get; set; }

    /// <summary>
    /// Дата начала интервала
    /// </summary>
    public DateTime DateMin { get; set; }

    /// <summary>
    /// Дата окончания интервала
    /// </summary>
    public DateTime DateMax { get; set; }

    /// <summary>
    /// Глубина начала интервала
    /// </summary>
    public float WellDepthMin { get; set; }

    /// <summary>
    /// Глубина окончания интервала
    /// </summary>
    public float WellDepthMax { get; set; }

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

    /// <summary>
    /// действующее задание давления
    /// </summary>
    public float PressureSp { get; set; }
    
    /// <summary>
    /// действующее задание перепада давления
    /// </summary>
    public float PressureSpDelta { get; set; }

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

    /// <summary>
    /// ограничение макс перепада давления
    /// </summary>
    public float PressureDeltaLimitMax { get; set; }

    /// <summary>
    /// Перепад давления
    /// </summary>
    public float PressureDelta { get; set; }

    /// <summary>
    /// осевая нагрузка
    /// </summary>
    public float AxialLoad { get; set; }

    /// <summary>
    /// задание осевой нагрузки
    /// </summary>
    public float AxialLoadSp { get; set; }

    /// <summary>
    /// ограничение макс. осевой нагрузки
    /// </summary>
    public float AxialLoadLimitMax { get; set; }

    /// <summary>
    /// момент ротора
    /// </summary>
    public float RotorTorque { get; set; }

    /// <summary>
    /// задание момента ротора
    /// </summary>
    public float RotorTorqueSp { get; set; }

    /// <summary>
    /// момент ротора на х.х.
    /// </summary>
    public float RotorTorqueLimitMax { get; set; }

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

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

    /// <summary>
    /// Режим САУБ
    /// </summary>
    public short IdMode { get; set; }

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