namespace SafeCampus.System;
[SugarTable("PersonInfo", TableDescription = "人员信息表")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
[BatchEdit]
[CodeGen]
[IgnoreInitTable]
public class PersonInfo
{
    /// <summary>
    /// 人员id
    /// </summary>
    [SugarColumn(ColumnDescription = "人员id", IsPrimaryKey = true)]
    public string PersonId { get; set; }
    /// <summary>
    /// 人员名称
    /// </summary>
    [SugarColumn(ColumnName = "Name", ColumnDescription = "人员名称", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
    public string Name { get; set; }
    /// <summary>
    /// 年龄
    /// </summary>
    [SugarColumn(ColumnName = "Age", ColumnDescription = "年龄", IsNullable = false)]
    public int Age { get; set; }
    /// <summary>
    /// 性别
    /// </summary>
    [SugarColumn(ColumnName = "Gender", ColumnDescription = "性别", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
    public string Gender { get; set; }
    /// <summary>
    /// 手机号
    /// </summary>
    [SugarColumn(ColumnName = "Phone", ColumnDescription = "手机号", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
    public string Phone { get; set; }
    /// <summary>
    /// 扩展属性
    /// </summary>
    [SugarColumn(ColumnName = "ExtData", ColumnDescription = "扩展属性", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
    public string ExtData { get; set; }
    /// <summary>
    /// 人脸大小阈值
    /// </summary>
    [SugarColumn(ColumnName = "FaceSizeLimit", ColumnDescription = "人脸大小阈值",IsNullable = false)]
    public int FaceSizeLimit { get; set; }
    /// <summary>
    ///人脸质量分阈值
    /// </summary>
    [SugarColumn(ColumnName = "QualityScore", ColumnDescription = "人脸质量分阈值",IsNullable = false)]
    public float QualityScore { get; set; }
    /// <summary>
    /// 创建时间
    /// </summary>
    [SugarColumn(ColumnName = "CreateTime", ColumnDescription = "创建时间", IsNullable = true)]
    public DateTime CreateTime { 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 = "DormitoryId", ColumnDescription = "所属寝室id",IsNullable = true)]
    public long? DormitoryId { get; set; }
    /// <summary>
    /// 人脸列表
    /// </summary>
    [Navigate(NavigateType.OneToMany, nameof(PersonFaces.PersonId))]
    public List<PersonFaces> PersonFacesList { get; set; }
    /// <summary>
    /// 班级信息
    /// </summary>
    [Navigate(NavigateType.OneToOne, nameof(PersonSetInfo.PersonSetId),nameof(PersonSetId))]
    public PersonSetInfo PersonSetInfoItem { get; set; }
    /// <summary>
    /// 寝室信息
    /// </summary>
    [Navigate(NavigateType.OneToOne, nameof(DormitoryId))]
    public DormitoryInfo DormitoryInfoItem { get; set; }
    /// <summary>
    /// 考勤列表
    /// </summary>
    [Navigate(NavigateType.OneToMany, nameof(Attendance.PersonId))]
    public List<Attendance> Attendances { get; set; }
}