using OASystem.Domain.Entities;
using SqlSugar;
namespace OASystem.Domain.Entities.System
{
    /// <summary>
    /// 用户表
    /// </summary>
    [SugarTable("Sys_Users")]
    public class Sys_Users : EntityBase
    {
        /// <summary>
        /// 中文姓名
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string CnName { get; set; }
        /// <summary>
        /// 英文姓名
        /// </summary>
        [SugarColumn(IsNullable = true,ColumnDataType ="varchar(50)")]
        public string EnName { get; set; }
        /// <summary>
        /// 工号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string Number { get; set; }
        /// <summary>
        /// 公司Id
        /// </summary>
        [SugarColumn(IsNullable = true,ColumnDataType ="int")]
        public int CompanyId { get; set; }
        /// <summary>
        /// 部门Id
        /// </summary>
        [SugarColumn(IsNullable = true,ColumnDataType ="int")]
        public int DepId { get; set; }
        /// <summary>
        /// 岗位Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int JobPostId { get; set; }
        /// <summary>
        /// 密码
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string Password { get; set; } 
        /// <summary>
        /// 性别0 男 1 女  2 未设置
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int Sex { get; set; }
        /// <summary>
        /// 分机号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string Ext { get; set; }
        /// <summary>
        /// 手机号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string Phone { get; set; }
        /// <summary>
        /// 紧急联系人 手机号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string UrgentPhone { get; set; }
        /// <summary>
        /// 邮箱
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string Email { get; set; }
        /// <summary>
        /// 住址
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType ="varchar(200)")]
        public string Address { get; set; }
        /// <summary>
        /// 入职时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime Edate { get; set; }
        /// <summary>
        /// 离职时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime Rdate { get; set; }
        /// <summary>
        /// 工龄
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int Seniority { get; set; }
        /// <summary>
        /// 生日
        /// </summary> 
        [SugarColumn(IsNullable = true,ColumnDataType = "DateTime")]
        public DateTime? Birthday { get; set; }
        /// <summary>
        /// 身份证号码
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType ="varchar(20)")]
        public string IDCard { get; set; }
        /// <summary>
        /// 开始工作时
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string? StartWorkDate { get; set; }
        /// <summary>
        /// 毕业学校
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType ="varchar(200)")]
        public string GraduateInstitutions { get; set; }
        /// <summary>
        /// 专业
        /// </summary>
        [SugarColumn(IsNullable = true,ColumnDataType ="varchar(50)")]
        public string Professional { get; set; }

        /// <summary>
        /// 学历
        /// 0 未设置 1 小学、2 初中、3 高中、4 专科、5 本科、6 研究生
        /// </summary>
        [SugarColumn(IsNullable = true,ColumnDataType ="int")]
        public int Education { get; set; }
        /// <summary>
        /// 学历类型
        ///0 未设置 1 成教 2 统招 3 留学
        /// </summary>
        [SugarColumn(IsNullable = true,ColumnDataType ="int")]
        public int TheOrAdultEducation { get; set; }
        /// <summary>
        /// 婚姻状态
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType ="varchar(200)")]
        public string MaritalStatus { get; set; }
        /// <summary>
        /// 家庭地址
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        public string HomeAddress { get; set; }
        /// <summary>
        /// 试用期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        public string UsePeriod { get; set; }
        /// <summary>
        /// 工作经历
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string WorkExperience { get; set; }
        /// <summary>
        /// 证书上传
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string Certificate { get; set; }
        /// <summary>
        /// 人事审核 0未审核(初始状态) 1 已通过(可用)2已拒绝
        /// </summary>
        [SugarColumn(IsNullable = true,ColumnDataType ="int")]
        public int HrAudit { get; set; }

        /// <summary>
        /// 企微Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        public string QiyeChatUserId { get; set; }
    }

    #region 附加字段
    /// <summary>
    /// 用户表
    /// 数据库查询接受实体类
    /// </summary>
    public class UserInfo : Sys_Users
    {
        /// <summary>
        /// 公司名称
        /// </summary>
        public string? CompanyName { get; set; }

        /// <summary>
        /// 部门名称
        /// </summary>
        public string? DepName { get; set; }

        /// <summary>
        /// 岗位名称
        /// </summary>
        public string? JobName { get; set; }

    }
    #endregion
}