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

namespace APT.MS.Domain.Entities.OH
{
    /// <summary>
    /// 体检结果
    /// </summary>
    [Description("体检结果")]
    public class T_OH_HEALTH_EXAM_RESULT : MesEntityBase
    {
        /// <summary>
        /// 体检人员安排ID
        /// </summary>
        [Description("体检人员安排")]
        [DataFieldForeignKey("Nav_NoticeRegister")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public Guid? NOTICE_REGISTER_ID { get; set; }

        /// <summary>
        /// 导航: 体检人员安排
        /// </summary>
        [Description("导航: 体检人员安排")]
        public T_OH_HEALTH_EXAM_NOTICE_REGISTER Nav_NoticeRegister { get; set; }

        /// <summary>
        /// 用户ID
        /// </summary>
        [Description("用户")]
        [DataFieldForeignKey("Nav_User")]
        public Guid? USER_ID { get; set; }

        /// <summary>
        /// 导航: 用户
        /// </summary>
        [Description("导航: 用户")]
        public T_FM_USER Nav_User { get; set; }

        /// <summary>
        /// 体检结论
        /// </summary>
        [Description("体检结论")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public OHHealthExamResult RESULT_ENUM { get; set; }

        /// <summary>
        /// 结果描述
        /// </summary>
        [Description("结果描述")]
        [FormFieldEdit]
        [DataFieldLength(500)]
        public string DESCRIPTION { get; set; }

        /// <summary>
        /// 处理意见
        /// </summary>
        [Description("处理意见")]
        [FormFieldEdit]
        [DataFieldLength(800)]
        public string SUGGESTION { get; set; }

        /// <summary>
        /// 导航: 职业病信息(字表)
        /// </summary>
        [Description("导航: 职业病信息")]
        [FormFieldEdit]
        public virtual ICollection<T_OH_HEALTH_EXAM_RESULT_OCC_DISEASE> Nav_OccDiseaseList { get; set; }

        /// <summary>
        /// 导航: 体检结果职业危害类型中间表
        /// </summary>
        [Description("导航: 体检结果职业危害中间表")]
        [FormFieldEdit]
        public virtual ICollection<T_OH_EXAM_RESULT_OCC_HAZARD> Nav_OccHazardList { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        [Description("状态")]
        [FormFieldTable]
        [FormFieldQuery]
        public OHHealthExamResultStatus STATUS { get; set; }
    }
}