using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.Infrastructure.Utility;
using APT.MS.Domain.Entities.PF;
using System;
using System.Collections.Generic;
using System.ComponentModel;
namespace APT.BaseData.Domain.Entities.FM
{
    [Description("用户表")]
    /// 
    /// 用户
    ///  
    [Redis("ID","ID","CODE")]
    [DataClassIndex(new string[] { "CODE", "ORG_ID" }, true)]
    [IgnoreT4]
    public partial class T_FM_USER : MesEntityBase
    {
        [Description("姓名")]
        /// 
        /// 姓名
        /// 
        [AcronymField("NAME_ACRONYM")]
        public string NAME { get; set; }
        /// 
        /// 名称首字母缩写
        /// 
        [Description("名称首字母缩写")]
        public string NAME_ACRONYM { get; set; }
        [Description("编码")]
        /// 
        /// 编码,即为登入账号
        ///    
   
        public string CODE { get; set; }
        [Description("密码")]
        /// 
        /// 密码
        /// 
        public string PASSWORD { get; set; }
        [Description("手机")]
        /// 手机号 
        public string PHONE { get; set; }
        [Description("部门ID")]
        /// 
        /// 部门ID
        /// 
        public Guid? DEPARTMENT_ID { get; set; }
        /// 
        /// FMEnableStatusEnum(0启用1停用)
        /// 
        [Description("启用标志")]
		[EnumName("FMEnableStatusEnum")]
		public int ENABLE_STATUS { get; set; }
		[Description("备注")]
		public string REMARK { get; set; }
		/// 
		/// 用于记录用户设置的打印机
		/// 
		[Description("打印机ID")]
		public Guid? PRINTER_ID { get; set; }
        [Description("人员ID")]
        public Guid? PERSON_ID { get; set; }
        [Description("租户")]
        [DataFieldIngore]
        public string Tenant { get; set; }
        [Description("导航:人员")]
        /// 
        /// 部门
        /// 
        /// 
        public virtual T_FM_PERSON Nav_Person { get; set; }
   
        
        [Description("导航:部门")]
        /// 
        /// 部门
        /// 
        /// 
        public virtual T_FM_DEPARTMENT Nav_Department { get; set; }
        [Description("导航:角色列表")]
        public virtual ICollection Nav_BelongRoles { get; set; }
        [Description("导航:角色组列表")]
        public virtual ICollection Nav_BelongRoleGroups { get; set; }
        [Description("导航:用户组列表")]
        public virtual ICollection Nav_BelongUserGroups { get; set; }
        /// 
        /// 头像文件
        /// 
        [Description("导航:头像文件")]
        public virtual List Nav_UserPhotoFiles { get; set; }
        /// 
        /// 头像文件
        /// 
        [Description("导航:签名照片")]
        public virtual List Nav_UserSignFiles { get; set; }
        /// 
        /// 签名路径 减少model 1-1时的数据联查
        /// 
        [Description("文件路径")]
        [DataFieldLength(150)]
        public string FILE_PATH { get; set; }
        /// 
        /// 头像文件
        /// 
        [Description("班组ID")]
        [DataFieldIngore]
        public T_FM_TEAM Team { get; set; }
        /// 
        /// 性别
        /// 
        [Description("性别")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        [EnumName("FMSexEnum")]
        public int SEX { get; set; }
        /// 
        /// 班组
        /// 
        [Description("班组")]
        [FormFieldTable]
        [FormFieldQuery]
        [DataFieldIngore]
        public string TEAMNAME { get; set; }
        /// 
        /// 班组ID
        /// 
        [Description("班组ID")]
        [FormFieldTable]
        [FormFieldQuery]
        [DataFieldIngore]
        public Guid? TEAM_ID { get; set; }
        /// 
        /// 班组
        /// 
        [Description("身份证号")]
        [FormFieldTable]
        [FormFieldQuery]
        [DataFieldLength(50)]
        public string ID_CARD { get; set; }
        /// 
        /// 班组
        /// 
        [Description("入职时间")]
        [FormFieldTable]
        [FormFieldQuery]
        public DateTime ENTRYTIME { get; set; }
        /// 
        /// 班组
        /// 
        [Description("离职时间")]
        [FormFieldTable]
        [FormFieldQuery]
        public DateTime? DEPARTURETIME { get; set; }
        /// 
        /// 班组
        /// 
        [Description("工龄")]
        [FormFieldTable]
        [FormFieldQuery]
        public int WORKINGYEAR { get; set; }
        [Description("人员ID")]
        [DataFieldForeignKey("Nav_ApproveRole")]
        
        public Guid? APPROVE_ROLE_ID { get; set; }
        [Description("导航属性:审批角色")]
        public virtual T_PF_APPROVAL_ROLE Nav_ApproveRole { get; set; }
        
        [Description("生产单元")]
        public virtual ICollection Nav_ProdutionUnit { get; set; }
        /// 
        /// 生产单元类型
        /// 
        [Description("生产单元类型")]
        [EnumName("FMProductionUnit")]
        public string MineType { get; set; }
        [Description("是否上传签名")]
        [DataFieldIngore]
        public string IS_SIGN { get; set; }
        /// 
        /// 外包单位
        /// 
        [Description("外包单位")]
        public Guid? PROJECT_ID{ get; set; }
        /// 
        /// 排序号 
        /// 
        [Description("排序号")]
        public int NUM { get; set; }
        /// 
        /// 民族
        /// 
        [Description("民族")]
        [DataFieldIngore]
        public string NATIONALITY { get; set; }
        /// 
        /// 生日
        /// 
        [Description("生日")]
        [DataFieldIngore]
        public DateTime? BIRTHDAY { get; set; }
        /// 
        /// 政治面貌
        /// 
        [Description("政治面貌")]
        [DataFieldIngore]
        public string POLITICALSTATUE { get; set; }
        /// 
        /// 职称
        /// 
        [Description("职称")]
        [DataFieldIngore]
        public string JOBTITLE { get; set; }
        /// 
        /// 文化程度
        /// 
        [Description("文化程度")]
        [DataFieldIngore]
        public string CULTURALLEVEL { get; set; }
        /// 
        /// 参加工作日期
        /// 
        [Description("参加工作日期")]
        [DataFieldIngore]
        public DateTime? WORKDATE { get; set; }
        /// 
        /// 岗位编号
        /// 
        [Description("岗位编号")]
        [DataFieldIngore]
        public string POST_CODE { get; set; }
        /// 
        /// 组织编号
        /// 
        [Description("组织编号")]
        [DataFieldIngore]
        public string DEPARTMENT_CODE { get; set; }
        /// 
        /// 工作经历
        /// 
        [Description("工作经历")]
        [DataFieldIngore]
        public virtual ICollection Nav_Works { get; set; }
        /// 
        /// 技能等级
        /// 
        [Description("技能等级")]
        [DataFieldIngore]
        public virtual ICollection Nav_Skills { get; set; }
        /// 
        /// 身份证
        /// 
        [Description("身份证")]
        [DataFieldIngore]
        public virtual ICollection Nav_IDCardFiles { get; set; }
        /// 
        /// 学历证
        /// 
        [Description("学历证")]
        [DataFieldIngore]
        public virtual ICollection Nav_EducationFiles { get; set; }
        /// 
        /// 证书
        /// 
        [Description("证书")]
        [DataFieldIngore]
        public virtual ICollection Nav_CertificateFiles { get; set; }
    }
}