using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using SqlSugar;

namespace OpenAuth.Repository.Domain;

/// <summary>
/// 算法实例
/// </summary>
[SugarTable("lasa_algoinstance")]
public class LasaAlgoInstance
{
    /// <summary>
    /// 主键ID
    /// </summary>
    [Key]
    [SugarColumn(IsPrimaryKey = true, ColumnName = "Id")]
    [MaxLength(50)]
    public string Id { get; set; }

    /// <summary>
    /// 名称
    /// </summary>
    [SugarColumn(ColumnName = "Name")]
    [Required]
    [MaxLength(50)]
    public string Name { get; set; }

    /// <summary>
    /// 封面
    /// </summary>
    [SugarColumn(ColumnName = "Cover")]
    [MaxLength(1000)]
    public string Cover { get; set; }

    /// <summary>
    /// 显示方案
    /// </summary>
    [SugarColumn(ColumnName = "DisplayScheme")]
    [MaxLength(30)]
    public string DisplayScheme { get; set; }

    /// <summary>
    /// 描述
    /// </summary>
    [SugarColumn(ColumnName = "Description")]
    [MaxLength(2000)]
    public string Description { get; set; }

    /// <summary>
    /// 显示颜色
    /// </summary>
    [SugarColumn(ColumnName = "DisplayColor")]
    [MaxLength(15)]
    public string DisplayColor { get; set; }

    /// <summary>
    /// 画面识别区域水平方向
    /// </summary>
    [SugarColumn(ColumnName = "RecognitionX")]
    public float? RecognitionX { get; set; }

    /// <summary>
    /// 画面识别区域垂直方向
    /// </summary>
    [SugarColumn(ColumnName = "RecognitionY")]
    public float? RecognitionY { get; set; }

    /// <summary>
    /// 空间红束是否开启 0未开启 1开启 Constraint
    /// </summary>
    [SugarColumn(ColumnName = "SpaceConstraint")]
    public short? SpaceConstraint { get; set; }

    /// <summary>
    /// 外扩距离
    /// </summary>
    [SugarColumn(ColumnName = "ExpansionDistance")]
    public int? ExpansionDistance { get; set; }

    /// <summary>
    /// 时间约束是否开启 0未开启 1开启
    /// </summary>
    [SugarColumn(ColumnName = "TemporalConstraint")]
    public short? TemporalConstraints { get; set; }

    /// <summary>
    /// 时间约束开始时间
    /// </summary>
    [SugarColumn(ColumnName = "TcStartTime")]
    public DateTime? TcStartTime { get; set; }

    /// <summary>
    /// 时间约束结束时间
    /// </summary>
    [SugarColumn(ColumnName = "TcEndTime")]
    public DateTime? TcEndTime { get; set; }

    /// <summary>
    /// 飞行速度
    /// </summary>
    [SugarColumn(ColumnName = "FlySpeed")]
    [MaxLength(30)]
    public string FlySpeed { get; set; }

    /// <summary>
    /// 云台俯仰角
    /// </summary>
    [SugarColumn(ColumnName = "GimbalPitchDegree")]
    [MaxLength(35)]
    public string GimbalPitchDegree { get; set; }

    /// <summary>
    /// 识别对象画面占比
    /// </summary>
    [SugarColumn(ColumnName = "RecognitionCoverage")]
    [MaxLength(10)]
    public string RecognitionCoverage { get; set; }

    /// <summary>
    /// 标签
    /// </summary>
    [SugarColumn(ColumnName = "Tags")]
    [MaxLength(255)]
    public string Tags { get; set; }
    [SugarColumn(ColumnName = "AlgoIds")]
    public string AlgoIds { get; set; }
}