
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.PF;
using APT.MS.Domain.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace APT.MS.Domain.Entities.HM
{
    /// <summary>
    /// 职业危害评价表(职业危害库)
    /// </summary>
    [Description("职业危害评价表(职业危害库)")]
    public class T_HM_EVALUATE_HAZARD : MesEntityBase
    {
        /// <summary>
        /// 职业危害库编码
        /// </summary>
        [Description("编码")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public string CODE { get; set; }
        /// <summary>
        /// 职业危害名称
        /// </summary>
        [Description("职业危害名称")]
        [DataFieldForeignKey("Nav_Identifying")]
        [FormFieldEdit]
        public Guid IDENTIFYING_ID { get; set; }
        /// <summary>
        /// 导航属性
        /// </summary>
        [Description("导航属性：职业危害名称")]
        public T_HM_IDENTIFYING Nav_Identifying { get; set; }
        /// <summary>
        /// 职业危害位置
        /// </summary>
        [Description("职业危害位置")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        [DataFieldLength(300)]
        public string HAZARD_POSITION { get; set; }

        /// <summary>
        /// 辨识区域ID
        /// </summary>
        [Description("辨识区域")]
        [FormFieldTable]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Area")]
        public Guid? AREA_ID { get; set; }

        /// <summary>
        /// 导航属性：辨识区域
        /// </summary>
        [Description("导航属性：辨识区域")]
        public T_HM_RISK_AREA Nav_Area { get; set; }

        /// <summary>
        /// 暴露时间(一位小数)
        /// </summary>
        [Description("暴露时间")]
        [FormFieldTable]
        [FormFieldEdit]
        public decimal EXPOSURE_TIME { get; set; }

        /// <summary>
        /// 暴露限值(一位小数)
        /// </summary>
        [Description("暴露限值")]
        [FormFieldTable]
        [FormFieldEdit]
        [DataFieldLength(100)]
        public string EXPOSURE_LIMIT_VALUE { get; set; }

        /// <summary>
        /// 暴露人数
        /// </summary>
        [Description("暴露人数")]
        [FormFieldTable]
        [FormFieldEdit]
        public int EXPOSURE_NUMBER { get; set; }

        /// <summary>
        /// 状态 有效 = 0,作废 = 1
        /// </summary>
        [Description("状态")]
        [FormFieldTable]
        [EnumName("HMOperationStepEnum")]
        public int STATUS { get; set; }

        /// <summary>
        /// 是否显示 显示 = 0,否 = 1,
        /// </summary>
        [Description("是否显示")]
        public int IS_SHOW { get; set; }

        /// <summary>
        /// 可能造成的职业风险ID
        /// </summary>
        [Description("可能造成的职业风险")]
        [FormFieldTable]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_OccupationalRisk")]
        public Guid? OCCUPATIONALRISK_ID { get; set; }

        /// <summary>
        /// 导航属性：可能造成的职业风险
        /// </summary>
        [Description("导航属性：可能造成的职业风险")]
        public T_HM_OCCUPATIONAL_RISK Nav_OccupationalRisk { get; set; }

        /// <summary>
        /// 危害等级
        /// </summary>
        [Description("危害等级")]
        [EnumName("HazardLevelEnum")]
        [FormFieldTable]
        [FormFieldEdit]
        public HazardLevelEnum HAZARD_LEVEL { get; set; }
        /// <summary>
        /// 监测措施ID
        /// </summary>
        [Description("监测措施")]
        [DataFieldForeignKey("Nav_MonitorMeasures")]
        [FormFieldEdit]
        public Guid? MONITOR_MEASURES_ID { get; set; }
        /// <summary>
        /// 导航属性：监测措施
        /// </summary>
        [Description("导航属性：监测措施")]
        public T_HM_MONITOR_MEASURES Nav_MonitorMeasures { get; set; }
        /// <summary>
        /// 导航属性：个体防护措施
        /// </summary>
        [Description("个体防护措施")]
        [FormFieldEdit]
        public ICollection<T_HM_EVALUATE_HAZARD_INDIVIDUAL_MEASURES> Nav_EvaluateHazardIndividualMeasures { get; set; }

        /// <summary>
        /// 导航属性：工程控制措施
        /// </summary>
        [Description("工程控制措施")]
        [FormFieldEdit]
        public ICollection<T_HM_EVALUATE_HAZARD_ENGINEERING_MEASURES> Nav_EvaluateHazardEngineeringMeasures { get; set; }

        /// <summary>
        /// 导航属性：管理控制措施
        /// </summary>
        [Description("管理控制措施")]
        [FormFieldEdit]
        public ICollection<T_HM_EVALUATE_HAZARD_MANAGEMENT_MEASURES> Nav_EvaluateHazardManagementMeasures { get; set; }
        /// <summary>
        /// 导航属性：教育培训措施
        /// </summary>
        [Description("教育培训措施")]
        [FormFieldEdit]
        public ICollection<T_HM_EVALUATE_HAZARD_EDUCATION_MEASURES> Nav_EvaluateHazardEducationMeasures { get; set; }
        /// <summary>
        /// 导航属性：应急处置措施
        /// </summary>
        [Description("应急处置措施")]
        [FormFieldEdit]
        public ICollection<T_HM_EVALUATE_HAZARD_EMERGENCY_MEASURES> Nav_EvaluateHazardEmergencyMeasures { get; set; }
        /// <summary>
        /// 导航属性：相关部门
        /// </summary>
        [Description("相关部门")]
        [FormFieldEdit]
        public ICollection<T_HM_EVALUATE_HAZARD_DEPARTMENT> Nav_EvaluateHazardDepartment { get; set; }
        /// <summary>
        /// 层级 3公司级 0部门级 1车间级 2班组级
        /// </summary>
        [Description("层级")]
        [EnumName("FMDepartmentType")]
        [FormFieldTable]
        [FormFieldEdit]
        public FMDepartmentType LEVEL { get; set; }
        /// <summary>
        /// 修改状态 数据库=0,修改=1,新增=2
        /// </summary>
        [Description("修改状态")]
        [EnumName("HMModifyEnum")]
        [FormFieldEdit]
        public HMModifyEnum MODIFY_TYPE { get; set; }
        /// <summary>
        /// 责任单位
        /// </summary>
        [Description("责任单位")]
        [DataFieldForeignKey("Nav_DepartmentLiable")]
        [FormFieldTable]
        [FormFieldEdit]
        public Guid? DEPARTMENT_LIABLE_ID { get; set; }
        /// <summary>
        /// 导航属性：责任单位
        /// </summary>
        [Description("导航属性：责任单位")]
        public T_FM_DEPARTMENT Nav_DepartmentLiable { get; set; }
        /// <summary>
        /// 责任人ID
        /// </summary>
        [Description("责任岗位")]
        [DataFieldForeignKey("Nav_PostLiable")]
        [FormFieldTable]
        [FormFieldEdit]
        public Guid? POST_LIABLE_ID { get; set; }
        /// <summary>
        /// 导航属性：责任人
        /// </summary>
        [Description("导航属性：责任岗位")]
        public T_PF_APPROVAL_ROLE Nav_PostLiable { get; set; }
        /// <summary>
        /// 个体防护措施
        /// </summary>
        [Description("个体防护措施")]
        public string IndividualMeasuresStr { get; set; }
        /// <summary>
        /// 工程控制措施
        /// </summary>
        [Description("工程控制措施")]
        public string EngineeringMeasuresStr { get; set; }
        /// <summary>
        /// 管理控制措施
        /// </summary>
        [Description("管理控制措施")]
        public string ManagementMeasuresStr { get; set; }
        /// <summary>
        /// 教育培训措施
        /// </summary>
        [Description("教育培训措施")]
        public string EducationTrainingMeasuresStr { get; set; }
        /// <summary>
        /// 应急处置措施
        /// </summary>
        [Description("应急处置措施")]
        public string EmergencyDisposalMeasuresStr { get; set; }
        /// <summary>
        /// 类型
        /// </summary>
        [Description("类型")]
        [EnumName("BSMineTypeEnum")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public BSMineTypeEnum MineType { get; set; }
    }
}

