using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;

namespace AsbCloudDb.Model.ProcessMaps;

[Table("t_process_map_plan_drilling"), Comment("РТК план бурение")]
public class ProcessMapPlanDrilling : ProcessMapPlanBase
{
	[Column("id_mode"), Comment("Id режима (1- ротор, 2 слайд)")]
	public int IdMode { get; set; }

	[Column("axial_load_plan"), Comment("Осевая нагрузка, т, план")]
	public double AxialLoadPlan { get; set; }

	[Column("axial_load_limit_max"), Comment("Осевая нагрузка, т, допустимый максимум")]
	public double AxialLoadLimitMax { get; set; }

	[Column("delta_pressure_plan"), Comment("Перепад давления, атм, план")]
	public double DeltaPressurePlan { get; set; }

	[Column("delta_pressure_limit_max"), Comment("Перепад давления, атм, допустимый максимум")]
	public double DeltaPressureLimitMax { get; set; }

	[Column("top_drive_torque_plan"), Comment("Момент на ВСП, план")]
	public double TopDriveTorquePlan { get; set; }

	[Column("top_drive_torque_limit_max"), Comment("Момент на ВСП, допустимый максимум")]
	public double TopDriveTorqueLimitMax { get; set; }

	[Column("top_drive_speed_plan"), Comment("Обороты на ВСП, план")]
	public double TopDriveSpeedPlan { get; set; }

	[Column("top_drive_speed_limit_max"), Comment("Обороты на ВСП, допустимый максимум")]
	public double TopDriveSpeedLimitMax { get; set; }

	[Column("flow_plan"), Comment("Расход, л/с, план")]
	public double FlowPlan { get; set; }

	[Column("flow_limit_max"), Comment("Расход, л/с, допустимый максимум")]
	public double FlowLimitMax { get; set; }

	[Column("rop_plan"), Comment("Плановая механическая скорость, м/ч")]
	public double RopPlan { get; set; }

	[Column("usage_saub"), Comment("Плановый процент использования АКБ")]
	public double UsageSaub { get; set; }

	[Column("usage_spin"), Comment("Плановый процент использования spin master")]
	public double UsageSpin { get; set; }

	[Column("comment"), Comment("Комментарий"), StringLength(1024)]
	public string Comment { get; set; } = string.Empty;

    [ForeignKey(nameof(IdPrevious))]
	public virtual ProcessMapPlanDrilling? Previous { get; set; }
}