using APT.BaseData.Domain.Entities.FM;
using APT.Infrastructure.Core;
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_NOTICE_RELEASE : MesEntityBase
    {
        /// <summary>
        /// 通知名称
        /// </summary>
        [Description("通知名称")]
        [DataFieldLength(50)]
        [FormFieldTable]
        [FormFieldEdit]
        public string NOTICE_NAME { get; set; }

        /// <summary>
        /// 文件编号
        /// </summary>
        [Description("文件编号")]
        [DataFieldLength(50)]
        [FormFieldTable]
        [FormFieldEdit]
        public string DOCUMENT_CODE { get; set; }

        /// <summary>
        /// 文件名称
        /// </summary>
        [Description("文件名称")]
        [DataFieldLength(50)]
        [FormFieldTable]
        [FormFieldEdit]
        public string DOCUMENT_NAME { get; set; }

        /// <summary>
        /// 文件版次
        /// </summary>
        [Description("文件版次")]
        [DataFieldLength(50)]
        [FormFieldTable]
        [FormFieldEdit]
        public string DOCUMENT_VERSION { get; set; }

        /// <summary>
        /// 文件等级
        /// </summary>
        [EnumName("HMFileLevelEnmu")]
        [Description("文件等级")]
        [FormFieldTable]
        [FormFieldEdit]
        public HMFileLevelEnmu DOCUMENT_LEVEL { get; set; }

        /// <summary>
        /// 发布状态
        /// </summary>
        [EnumName("FOPreMeetingStatusEnum")]
        [Description("发布状态")]
        [FormFieldTable]
        public FOPreMeetingStatusEnum RELEASE_STATUS { get; set; }

        /// <summary>
        /// 通知发布类型
        /// </summary>
        [EnumName("HMNoticeReleaseTypeEnmu")]
        [Description("通知发布类型")]
        public HMNoticeReleaseTypeEnmu NOTICE_RELEASE_TYPE { get; set; }



        /// <summary>
        /// 任务分析
        /// </summary>
        [Description("任务分析")]
        [DataFieldForeignKey("Nav_TaskAnalyze")]
        public Guid? TASK_ANALYZE_ID { get; set; }


        /// <summary>
        /// 任务分析
        /// </summary>
        [Description("任务分析")]
        public T_HM_TASK_ANALYZE Nav_TaskAnalyze { get; set; }


        /// <summary>
        /// 导航属性：发布范围部门
        /// </summary>
        [Description("导航：发布范围部门")]
        [FormFieldEdit]
        public ICollection<T_HM_NOTICE_RELEASE_DEPARTMENT> Nav_ReleaseRange { get; set; }

        /// <summary>
        /// 导航属性：发布文件
        /// </summary>
        [Description("导航：发布文件")]
        public ICollection<T_HM_NOTICE_RELEASE_FILE> Nav_Files { get; set; }

        [Description("发布人")]
        [DataFieldForeignKey("Nav_ReleaseUser")]
        public Guid? RELEASE_USER_ID { get; set; }

        [Description("导航属性：发布人")]
        public T_FM_USER Nav_ReleaseUser { get; set; }

        /// <summary>
        /// 发布部门ID
        /// </summary>
        [Description("发布部门")]
        [DataFieldForeignKey("Nav_ReleasDepartment")]
        public Guid? RELEAS_DEPARTMENT_ID { get; set; }
        /// <summary>
        /// 导航属性：发布部门
        /// </summary>
        [Description("导航属性：发布部门")]
        [FormFieldEdit]
        public T_FM_DEPARTMENT Nav_ReleasDepartment { get; set; }
        [Description("是否发布")]
        [DataFieldIngore]
        public string PUBLISH { get; set; }
        /// <summary>
        /// 关联ID
        /// </summary>
        [Description("关联ID")]
        [DataFieldForeignKey("Nav_Plan")]
        public Guid? PLAN_ID { get; set; }
        /// <summary>
        /// 导航属性：关联ID
        /// </summary>
        [Description("导航属性：关联ID")]
        [FormFieldEdit]
        public T_HM_EVALUATION_PLAN Nav_Plan { get; set; }
        [DataFieldIngore]
        public int IS_OVERTIME { get; set; }
    }
}
