using System;

namespace AsbCloudApp.Data.ProcessMaps.Report;

/// <summary>
/// Модель РТК
/// </summary>
public class ProcessMapReportWellDrillingDto
{
	/// <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 ProcessMapReportWellDrillingParamsDto PressureDiff { get; set; } = new();

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

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

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

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

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

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