using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Enums.PF;
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_PLAN : MesEntityBase
    {
        /// <summary>
        /// 体检计划名称
        /// </summary>
        [Description("体检计划名称")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        [DataFieldLength(200)]
        public string NAME { get; set; }

        /// <summary>
        /// 年度
        /// </summary>
        [Description("年度")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public int YEAR { get; set; }

        /// <summary>
        /// 上报截止时间
        /// </summary>
        [Description("上报截止时间")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public DateTime? DUE_TIME { get; set; }

        /// <summary>
        /// 导航: 体检计划上报部门中间表
        /// </summary>
        [Description("导航: 体检计划上报部门中间表")]
        public virtual ICollection<T_OH_HEALTH_EAXM_PLAN_DEPARTMENT> Nav_ListDepartment { get; set; }

        /// <summary>
        /// 导航: 体检计划人员登记
        /// </summary>
        [Description("导航: 体检计划人员登记")]
        public virtual ICollection<T_OH_HEALTH_EXAM_PLAN_REGISTER> Nav_ListPlanRegister { get; set; }

        /// <summary>
        /// 计划内容
        /// </summary>
        [Description("计划内容")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public string CONTENT { get; set; }

        /// <summary>
        /// 汇总状态
        /// 草稿  0   确认中（每个部门中间表有状态） 10   => （汇总状态）
        /// 
        /// 审核中 20   已归档 30    已驳回 40  
        /// </summary>
        [Description("汇总状态")]
        [FormFieldTable]
        [FormFieldQuery]
        public OHHealthExamPlanStatus STATAUSORDER { get; set; }

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


        /// <summary>
        /// 审批流
        /// </summary>
        [Description("审批流")]
        [DataFieldForeignKey("Nav_Approve")]
        public Guid? APPROVE_ID { get; set; }

        /// <summary>
        /// 审批流
        /// </summary>
        [Description("会议发起审批流")]
        public T_PF_APPROVE Nav_Approve { get; set; }
    }
}