namespace SafeCampus.System;
[SugarTable("ClassRoomCall", TableDescription = "点名数据")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
[BatchEdit]
[CodeGen]
[IgnoreInitTable]
public class ClassRoomCall: PrimaryKeyEntity
{
    /// <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 = "TaskId", ColumnDescription = "任务id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string TaskId { get; set; }
    /// <summary>
    /// 点名事件id
    /// </summary>
    [SugarColumn(ColumnName = "EventId", ColumnDescription = "点名事件id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string EventId { 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 = "TrackId", ColumnDescription = "人员跟踪id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string TrackId { 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 = "Similarity", ColumnDescription = "相似度", IsNullable = true)]
    public float Similarity { get; set; }
    /// <summary>
    /// 摄像头id
    /// </summary>
    [SugarColumn(ColumnName = "CameraId", ColumnDescription = "摄像头id", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string CameraId { get; set; }
    /// <summary>
    /// 人脸质量分，取值[0, 100]
    /// </summary>
    [SugarColumn(ColumnName = "FaceScore", ColumnDescription = "人脸质量分", IsNullable = true)]
    public float FaceScore { get; set; }
    /// <summary>
    /// 人脸照片url，链接有效期为2小时
    /// </summary>
    [SugarColumn(ColumnName = "SnapshotUrl", ColumnDescription = "人脸照片url", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string SnapshotUrl { get; set; }
    /// <summary>
    /// 人脸照片数据，base64编码（本地对接使用）
    /// </summary>
    [SugarColumn(ColumnName = "SnapshotData", ColumnDescription = "人脸照片数据", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string SnapshotData { get; set; }
    /// <summary>
    /// 事件发生时间
    /// </summary>
    [SugarColumn(ColumnName = "Tick", ColumnDescription = "事件发生时间", IsNullable = false)]
    public DateTime Tick { get; set; }
    /// <summary>
    /// 目标在快照中的位置
    /// </summary>
    [SugarColumn(ColumnName = "Rects", ColumnDescription = "目标在快照中的位置", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string Rects { get; set; }
    /// <summary>
    /// 人员扩展信息
    /// </summary>
    [SugarColumn(ColumnName = "Extend", ColumnDescription = "人员扩展信息", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
    public string Extend { get; set; }
    /// <summary>
    /// 创建时间
    /// </summary>
    [SugarColumn(ColumnName = "CreateTime", ColumnDescription = "创建时间", IsNullable = true)]
    public  DateTime CreateTime { get; set; }
    /// <summary>
    ///摄像头信息
    /// </summary>
    [Navigate(NavigateType.OneToOne, nameof(CameraId), nameof(CameraInfo.SensorId))]
    public CameraInfo CameraInfoItem { get; set; }
}