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

namespace AsbCloudDb.Model.ProcessMapPlan.Functions;

[Table("t_process_map_plan_anti_crash_rotation"), Comment("Противоаварийное вращение")]
public class ProcessMapPlanAntiCrashRotation : ProcessMapPlanBase
{
    [Column("top_drive_rpm_min"), Comment("Минимальные обороты ВСП, об/мин")]
    [Range(0.0, 250.0)]
    [Required]
    public double TopDriveRpmMin { get; set; }

    [Column("top_drive_start_min_flow_rate"), Comment("Минимальный расход для запуска оборотов  ВСП, л/сек")]
    [Range(0.0, 100.0)]
    [Required]
    public double TopDriveStartMinFlowRate { get; set; }

    [Column("top_drive_torque_max"), Comment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м")]
    [Range(1.0, 35.0)]
    [Required]
    public double TopDriveTorqueMax { get; set; }

    [Column("note"), Comment("Примечание"), StringLength(1024)]
    public string Note { get; set; } = string.Empty;

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