namespace SafeCampus.System;
[SugarTable("WarnInfo", TableDescription = "预警信息表")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
[BatchEdit]
[CodeGen]
[IgnoreInitTable]
public class WarnInfo : BaseEntity
{
    /// <summary>
    /// 租户id
    /// </summary>
    [SugarColumn(ColumnName = "TenantCode", ColumnDescription = "租户id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string TenantCode { get; set; }
    /// <summary>
    /// 门店id
    /// </summary>
    [SugarColumn(ColumnName = "PoiId", ColumnDescription = "门店id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string PoiId { get; set; }
    /// <summary>
    /// 预警id
    /// </summary>
    [SugarColumn(ColumnName = "AlarmId", ColumnDescription = "预警id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string AlarmId { get; set; }
    /// <summary>
    /// 预警类型
    /// </summary>
    [SugarColumn(ColumnName = "AlarmType", ColumnDescription = "预警类型", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string AlarmType { get; set; }
    /// <summary>
    /// 预警类型说明
    /// </summary>
    [SugarColumn(ColumnName = "AlarmTypeDesc", ColumnDescription = "预警类型说明", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string AlarmTypeDesc { get; set; }
    /// <summary>
    /// 摄像头id
    /// </summary>
    [SugarColumn(ColumnName = "CameraId", ColumnDescription = "摄像头id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string CameraId { get; set; }
  
    /// <summary>
    /// 事件发生时间
    /// </summary>
    [SugarColumn(ColumnName = "Tick", ColumnDescription = "事件发生时间", IsNullable = false)]
    public DateTime Tick { get; set; }
    /// <summary>
    /// 摄像头快照，原链接有效期为2小时，获取到数据后下载到本地
    /// </summary>
    [SugarColumn(ColumnName = "SnapshotUrl", ColumnDescription = "摄像头快照", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string SnapshotUrl { get; set; }
    /// <summary>
    /// 预警关联视频（有些报警有，有些没有）
    /// </summary>
    [SugarColumn(ColumnName = "VideoUrl", ColumnDescription = "预警关联视频", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string VideoUrl { get; set; }
    /// <summary>
    /// 目标在快照中的位置
    /// </summary>
    [SugarColumn(ColumnName = "Rects", ColumnDescription = "目标在快照中的位置", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string Rects { get; set; }
    ///// <summary>
    ///// 人员名称
    ///// </summary>
    //[SugarColumn(ColumnName = "PersonName", ColumnDescription = "人员名称", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    //public string PersonName { get; set; }
    /// <summary>
    /// 性别
    /// </summary>
    [SugarColumn(ColumnName = "Gender", ColumnDescription = "性别", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string Gender { get; set; }
    /// <summary>
    /// 班级id
    /// </summary>
    [SugarColumn(ColumnName = "PersonSetId", ColumnDescription = "班级id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string PersonSetId { get; set; }
    /// <summary>
    /// 人员id
    /// </summary>
    [SugarColumn(ColumnName = "PersonId", ColumnDescription = "人员id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string PersonId { get; set; }
    /// <summary>
    /// 人脸相似度
    /// </summary>
    [SugarColumn(ColumnName = "FaceSimilarity", ColumnDescription = "人脸相似度", IsNullable = true)]
    public float? FaceSimilarity { get; set; }
    /// <summary>
    /// 人员跟踪id,同一个id表示是同一个人
    /// </summary>
    [SugarColumn(ColumnName = "TrackId", ColumnDescription = "人员跟踪id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string TrackId { get; set; }
    /// <summary>
    /// 服装库id
    /// </summary>
    [SugarColumn(ColumnName = "ClothsSetId", ColumnDescription = "服装库id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string ClothsSetId { get; set; }
    /// <summary>
    /// 服装id
    /// </summary>
    [SugarColumn(ColumnName = "ClothId", ColumnDescription = "服装id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string ClothId { get; set; }
    /// <summary>
    /// 服装相似度
    /// </summary>
    [SugarColumn(ColumnName = "ClothSimilarity", ColumnDescription = "服装相似度", IsNullable = true)]
    public float? ClothSimilarity { get; set; }
    /// <summary>
    /// 奔跑速度
    /// </summary>
    [SugarColumn(ColumnName = "SpeedLevel", ColumnDescription = "奔跑速度", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string SpeedLevel { get; set; }
    /// <summary>
    /// 奔跑时周围人数
    /// </summary>
    [SugarColumn(ColumnName = "MaxAroundTracks", ColumnDescription = "奔跑时周围人数",  IsNullable = true)]
    public int? MaxAroundTracks { get; set; }
    /// <summary>
    /// 人群数量
    /// </summary>
    [SugarColumn(ColumnName = "Count", ColumnDescription = "人群数量", IsNullable = true)]
    public int? Count { get; set; }
    /// <summary>
    /// 持续时长
    /// </summary>
    [SugarColumn(ColumnName = "Duration", ColumnDescription = "持续时长", IsNullable = true)]
    public int? Duration { get; set; }
    /// <summary>
    /// 人员类型
    /// </summary>
    [SugarColumn(ColumnName = "PersonType", ColumnDescription = "人员类型", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string PersonType { get; set; }
    /// <summary>
    ///场景标签
    /// </summary>
    [SugarColumn(ColumnName = "Tags", ColumnDescription = "场景标签", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string Tags { get; set; }
    /// <summary>
    /// 额外数据，每个预警类型不同
    /// </summary>
    [SugarColumn(ColumnName = "Extend",ColumnDescription = "额外数据", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string Extend { get; set; }
    /// <summary>
    /// 预警处理状态
    /// </summary>
    [SugarColumn(ColumnName = "WarnHand", ColumnDescription = "预警处理状态", IsNullable = true)]
    public int WarnHand { get; set; }
    /// <summary>
    /// 处理意见
    /// </summary>
    [SugarColumn(ColumnName = "Remark", ColumnDescription = "处理意见", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string Remark { get; set; }
    /// <summary>
    /// 处理时间
    /// </summary>
    [SugarColumn(ColumnName = "HandTime",  ColumnDescription = "处理时间", IsNullable = true)]
    public DateTime? HandTime { get; set; }
    /// <summary>
    ///摄像头信息
    /// </summary>
    [Navigate(NavigateType.OneToOne, nameof(CameraId), nameof(CameraInfo.SensorId))]
    public CameraInfo CameraInfoItem { get; set; }
    /// <summary>
    /// 班级信息
    /// </summary>
    [Navigate(NavigateType.OneToOne,nameof(PersonSetId),nameof(PersonSetInfo.PersonSetId))]
    public PersonSetInfo PersonSetInfoItem { get; set; }
    /// <summary>
    /// 人员信息
    /// </summary>
    [Navigate(NavigateType.OneToOne,nameof(PersonId),nameof(PersonInfo.PersonId))]
    public PersonInfo PersonInfoItem { get; set; }
}