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("租户")]
        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; }
        /// 
        /// 头像文件
        /// 
        [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; }
    }
}