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

namespace APT.BaseData.Domain.Entities.FM
{
    [Description("部门表")]
    [IgnoreT4]
    public partial class T_FM_DEPARTMENT : TreeEntityBase<T_FM_DEPARTMENT>
    {
        [Description("名称")]
        [AcronymField("NAME_ACRONYM")]
        public string NAME { get; set; }


        /// <summary>
        /// 名称首字母缩写
        /// </summary>
        [Description("名称首字母缩写")]
        public string NAME_ACRONYM { get; set; }

        [Description("编号")]
        [CUnique]
        public string CODE { get; set; }

        [Description("启用标志")]
        [EnumName("FMEnableStatusEnum")]
        public int ENABLE_STATUS { get; set; }

        [Description("备注")]
        public string REMARK { get; set; }

        [Description("顺序")]
        public int NUM { get; set; }

        //[Description("生产日历ID")]
        //public Guid? CALENDAR_ID { get; set; }

        [Description("人员ID")]
        public Guid? USER_ID { get; set; }

        [Description("产线负责人")]
        public string LINE_USER { get; set; }

        [Description("部门层级")]
        [EnumName("FMDepartmentType")]
        public int DEPARTMENT_TYPE { get; set; }

        //[Description("导航：日历方案")]
        //public virtual T_FM_CALENDAR Nav_Calendar { get; set; }
        [Description("导航属性：节点日历配置表")]
        public virtual ICollection<T_FM_DEPARTMENT_CALENDAR_CONFIG> Nav_DepartmentCalendarConfig { get; set; }

        [Description("导航属性：节点日历配置表")]
        public virtual ICollection<T_FM_DEPARTMENT_SCHEDULING> Nav_DepartmentScheduling{ get; set; }

        [Description("导航属性：安全员")]
        public virtual ICollection<T_FM_DEPARTMENT_SAFEUSER> Nav_SafeUser { get; set; }
        [Description("导航属性：部门人员表")]
        public virtual ICollection<T_FM_DEPARTMENT_USER> Nav_DepartmentUser { get; set; }
        [Description("导航：负责人")]
        public virtual T_FM_USER Nav_User { get; set; }

        //[Description("导航：上级部门")]
        //public virtual T_FM_DEPARTMENT Parent { get; set; }

        [Description("导航：关联用户")]
        public virtual ICollection<T_FM_USER> Nav_UserList { get; set; }

        [Description("导航：关联用户关联表")]
        public virtual ICollection<T_FM_USER_DEPARTMENT> Nav_UserDeparts { get; set; }

        [Description("负责人")]
        public Guid? PERSON_ID { get; set; }

        [Description("导航：企业基本信息")]
        public virtual T_FM_PERSON Nav_Person { get; set; }

        [Description("部门类型")]
        [EnumName("FMDepartmentStatus")]
        public int DEPARTMENT_STATUS { get; set; }

        [Description("生产单元")]
        public virtual ICollection<T_FM_DEPARTMENT_PRODUCTION_UNIT> Nav_ProdutionUnit { get; set; }

        /// <summary>
        /// 生产单元类型
        /// </summary>
        [Description("生产单元类型")]
        [EnumName("FMProductionUnit")]
        public int? MineType { get; set; }

        [Description("分管领导")]
        public Guid? CHARGEUSER_ID { get; set; }

        [Description("导航：分管领导")]
        public virtual T_FM_USER Nav_ChargeUser { get; set; }
    }
}
