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

namespace AsbCloudDb.Model.ProcessMapPlan.Operations;

[Table("t_process_map_plan_operation_oscillation_angels"), Comment("Определение углов осцилляции")]
public class ProcessMapPlanOscillationAngles : ProcessMapPlanBase
{
    [Column("top_drive_torque"), Comment("Момент на ВСП, кН*м., Уставка")]
    [Range(0.0, 35.0)]
    [Required]
    public double TopDriveTorque { get; set; }

    [Column("top_drive_torque_max"), Comment("Момент на ВСП, кН*м., Ограничение")]
    [Range(0.0, 35.0)]
    [Required]
    public double TopDriveTorqueMax { get; set; }

    [Column("rpm"), Comment("Обороты на ВСП, об/мин., Уставка")]
    [Range(0.0, 270.0)]
    [Required]
    public double Rpm { get; set; }

    [Column("rpm_max"), Comment("Обороты на ВСП, об/мин., Ограничение")]
    [Range(0.0, 270.0)]
    [Required]
    public double RpmMax { get; set; }

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

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