using System;

namespace AsbCloudApp.Data.ProcessMaps.Report;

/// <summary>
/// Модель РТК
/// </summary>
public class WellDrillingProcessMapReportDto
{
    /// <summary>
    /// Идентификатор скважины
    /// </summary>
    public int IdWell { get; set; }

    /// <summary>
    /// Id секции скважины
    /// </summary>
    public int IdWellSectionType { get; set; }

    /// <summary>
    /// Название секции скважины
    /// </summary>
    public string WellSectionTypeName { get; set; } = null!;

    /// <summary>
    /// Глубина по стволу от, м
    /// <para>
    /// на начало интервала
    /// </para>
    /// </summary>
    public double DepthStart { get; set; }

    /// <summary>
    /// Глубина по стволу до, м
    /// <para>
    /// на конец интервала
    /// </para>
    /// </summary>
    public double DepthEnd { get; set; }

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

    /// <summary>
    /// Время мех бурения, ч
    /// </summary>
    public double MechDrillingHours { get; set; }

    /// <summary>
    /// Режим бурения (Ротор/слайд/ручной)
    /// </summary>
    public string DrillingMode { get; set; } = null!;

    /// <summary>
    /// Проходка, м
    /// </summary>
    public double? DeltaDepth { get; set; }

    /// <summary>
    /// Перепад давления, атм
    /// </summary>
    public WellDrillingProcessMapReportParamsDto PressureDiff { get; set; } = new();

    /// <summary>
    /// Нагрузка, т
    /// </summary>
    public WellDrillingProcessMapReportParamsDto AxialLoad { get; set; } = new();

    /// <summary>
    /// Момент на ВСП, кНхМ
    /// </summary>
    public WellDrillingProcessMapReportParamsDto TopDriveTorque { get; set; } = new();

    /// <summary>
    /// Ограничение скорости, м/ч
    /// </summary>
    public WellDrillingProcessMapReportParamsDto SpeedLimit { get; set; } = new();

    /// <summary>
    /// Процент использования системы АПД план, %
    /// </summary>
    public double UsagePlan { get; set; }

    /// <summary>
    /// Процент использования системы АПД факт, %
    /// </summary>
    public double UsageFact { get; set; }

    /// <summary>
    /// Фактическая механическая скорость, м/ч
    /// </summary>
    public double? Rop { get; set; }
}