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_NOTICE_REGISTER : MesEntityBase
    {
        /// <summary>
        /// 体检通知ID
        /// </summary>
        [Description("体检通知")]
        [DataFieldForeignKey("Nav_Notice", "Nav_ListNoticeRegister")]
        public Guid? NOTICE_ID { get; set; }

        /// <summary>
        /// 导航: 体检通知
        /// </summary>
        [Description("导航: 体检通知")]
        public T_OH_HEALTH_EXAM_NOTICE Nav_Notice { get; set; }

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

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

        /// <summary>
        /// 部门ID
        /// </summary>
        [Description("部门")]
        [DataFieldForeignKey("Nav_Department")]
        [FormFieldEdit]
        public Guid? DEPARTMENT_ID { get; set; }

        /// <summary>
        /// 导航: 部门
        /// </summary>
        [Description("导航: 部门")]
        public T_FM_DEPARTMENT Nav_Department { get; set; }

        /// <summary>
        /// 车间ID
        /// </summary>
        [Description("车间")]
        [DataFieldForeignKey("Nav_DepartmentWorkshop")]
        [FormFieldEdit]
        public Guid? DEPARTMENT_ID_WORKSHOP { get; set; }

        /// <summary>
        /// 导航: 车间级部门
        /// </summary>
        [Description("导航: 车间级部门")]
        public T_FM_DEPARTMENT Nav_DepartmentWorkshop { get; set; }

        /// <summary>
        /// 体检周期ID
        /// </summary>
        [Description("体检周期")]
        [DataFieldForeignKey("Nav_Cycle")]
        [FormFieldEdit]
        public Guid? CYCLE_ID { get; set; }

        /// <summary>
        /// 导航: 体检周期
        /// </summary>
        [Description("导航: 体检周期")]
        public T_OH_HEALTH_EXAM_CYCLE Nav_Cycle { get; set; }

        /// <summary>
        /// 导航: 体检通知人员职业危害中间表
        /// </summary>
        [Description("导航: 体检通知人员职业危害中间表")]
        public virtual ICollection<T_OH_EXAM_NOTICE_OCC_HAZARD> Nav_ListOccHazard { get; set; }

        /// <summary>
        /// 体检批次ID
        /// </summary>
        [Description("体检批次")]
        [DataFieldForeignKey("Nav_ExamBatch")]
        [FormFieldEdit]
        public Guid? EXAM_BATCH_ID { get; set; }

        /// <summary>
        /// 导航: 体检批次
        /// </summary>
        [Description("导航: 体检批次")]
        public T_OH_HEALTH_EXAM_BATCH Nav_ExamBatch { get; set; }

        /// <summary>
        /// 体检类型
        /// </summary>
        [Description("体检类型")]
        [FormFieldEdit]
        public OHHealthExamType? TYPE { get; set; }

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


        /// <summary>
        /// 体检计划部门ID
        /// </summary>
        [Description("体检计划部门")]
        public Guid? PLAN_ID_DEP { get; set; }

        /// <summary>
        /// 体检计划人员ID   T_OH_HEALTH_EXAM_PLAN_REGISTER
        /// </summary>
        [Description("体检计划人员")]
        public Guid? PLAN_REGISTER_ID { get; set; }

        /// <summary>
        /// 下次体检最迟日期 根据体检周期来
        /// 人事部 选择 带队人发送通知时 存入该字段  体检跑批时 触发周期
        /// </summary>
        [Description("下次体检最迟日期")]
        public DateTime? NEXTDATE { get; set; }

        /// <summary>
        /// 本批次体检开始日期（本次体检日期）
        /// </summary>
        [Description("本次体检日期")]
        public DateTime? THISDATE { get; set; }

        /// <summary>
        /// 上次体检批次开始日期（上次体检日期）
        /// </summary>
        [Description("上次体检批次开始日期")]
        public DateTime? LASTDATE { get; set; }
    }
}