using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.MS.Domain.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel;

namespace APT.MS.Domain.Entities.SE
{
    /// <summary>
    /// 新注册用户详细
    /// </summary>
    [Description("新注册用户详细")]
    public class T_SE_NEW_USER_DETAIL : MesEntityBase
    {
        /// <summary>
        /// 新注册用户表ID
        /// </summary>
        [Description("新注册用户表ID")]
        [DataFieldForeignKey("Nav_NewUser", "Nav_NewUserDetail")]
        public Guid EDU_CARD_ID { get; set; }
        /// <summary>
        /// 导航: 新注册用户表
        /// </summary>
        [Description("导航: 新注册用户表")]
        public T_SE_NEW_USERS Nav_NewUser { get; set; }
        /// <summary>
        /// 工号
        /// </summary>
        [Description("工号")]
        [FormFieldEdit]
        [DataFieldLength(30)]
        public string CODE { get; set; }
        /// <summary>
        /// 记录/考核人
        /// </summary>
        [Description("记录/考核人")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_User")]
        public Guid? USER_ID { get; set; }
        /// <summary>
        /// 导航: 记录/考核人
        /// </summary>
        [Description("导航: 记录/考核人")]
        public T_FM_USER Nav_User { get; set; }
        /// <summary>
        /// 身份证号
        /// </summary>
        [Description("身份证号")]
        [FormFieldEdit]
        [DataFieldLength(50)]
        public string ID_CARD_NUMBER { get; set; }
        /// <summary>
        /// 入职时间
        /// </summary>
        [Description("入职时间")]
        [FormFieldEdit]
        public DateTime? IN_TIME { get; set; }
        /// <summary>
        /// 部门ID
        /// </summary>
        [Description("部门")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Department")]
        public Guid? USER_DEPARTMENT_ID { get; set; }
        /// <summary>
        /// 导航: 部门
        /// </summary>
        [Description("导航: 部门")]
        public T_FM_DEPARTMENT Nav_Department { get; set; }
        /// <summary>
        /// 岗位
        /// </summary>
        [Description("岗位")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Post")]
        public Guid? USER_POST_ID { get; set; }
        /// <summary>
        /// 岗位
        /// </summary>
        [Description("岗位")]
        public T_FM_USER_POST Nav_Post { get; set; }
        /// <summary>
        /// 分数
        /// </summary>
        [Description("分数")]
        [FormFieldEdit]
        [DataFieldLength(10)]
        public string SCORE { get; set; }
        /// <summary>
        /// 考核结果
        /// </summary>
        [Description("考核结果")]
        [EnumName("SEExaminationResultsEnum")]
        [FormFieldEdit]
        public SEExaminationResultsEnum? EXAMINATION_RESULTS { get; set; }
        /// <summary>
        /// 导航属性：附件
        /// </summary>
        [Description("导航属性：附件")]
        public ICollection<T_SE_NEW_USER_DETAIL_FILE> Nav_Files { get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        [Description("状态")]
        [EnumName("SEThreeLevelSafeTrainStatus")]
        [FormFieldTable]
        public SEThreeLevelSafeTrainStatus STATUS { get; set; }
        [Description("是否发布")]
        [DataFieldIngore]
        public string PUBLISH { get; set; }

        [DataFieldIngore]
        public int IS_OVERTIME { get; set; }
        /// <summary>
        /// 导航属性：人员试题
        /// </summary>
        [Description("导航属性：人员试题")]
        [FormFieldEdit]
        public ICollection<T_SE_NEW_USER_DETAIL_PAPER> Nav_Papers { get; set; }
        /// <summary>
        /// 下个部门ID
        /// </summary>
        [Description("下个部门ID")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_DepartmentNext")]
        public Guid? NEXT_DEPARTMENT_ID { get; set; }

        /// <summary>
        /// 下个部门
        /// </summary>
        [Description("下个部门")]
        public T_FM_DEPARTMENT Nav_DepartmentNext { get; set; }

        /// <summary>
        /// 是否签到
        /// </summary>
        [Description("是否签到")]
        public bool ISSIGN { get; set; } = false;

    }
}
