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

namespace APT.MS.Domain.Entities.SC
{
    /// <summary>
    /// 制定任务
    /// </summary>
    [Description("会议计划")]
    public class T_SC_MT_PLAN_SET : MesEntityBase
    {
        /// <summary>
        /// 会议类型
        /// </summary>
        [Description("会议类型")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public SCMEETINGTYPE MEETINGTYPE { get; set; }

        /// <summary>
        /// 会议表
        /// </summary>
        [Description("会议内容")]
        [DataFieldForeignKey("Nav_ContentName")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public Guid? CONTENTNAME_ID { get; set; }

        /// <summary>
        /// 会议表
        /// </summary>
        [Description("导航：会议内容")]
        public virtual T_SC_MT_CONTENT_NAME Nav_ContentName { get; set; }

        /// <summary>
        /// 通知对象
        /// </summary>
        [Description("通知对象")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        [DataFieldForeignKey("Nav_ApproveRole")]
        public Guid? APPROVE_ROLE_ID { get; set; }

        /// <summary>
        /// 会议表
        /// </summary>
        [Description("导航：会议表")]
        public virtual T_PF_APPROVAL_ROLE Nav_ApproveRole { get; set; }

        /// <summary>
        /// 检查频率
        /// </summary>
        [Description("触发频率")]
        [FormFieldTable]
        [FormFieldEdit]
        public BSPLANCHECKFREQUENCYEnum PLANCHECKFREQUENCY { get; set; }

        /// <summary>
        /// 检查日期（日期 针对单次 有效） 例如：05-01,12-01
        /// </summary>
        [Description("触发日期")]
        [FormFieldEdit]
        public string RUNDATA { get; set; }

        /// <summary>
        /// 检查频率（日 针对每月/每季 有效）
        /// </summary>
        [Description("日")]
        [FormFieldEdit]
        public int? DATA { get; set; }

        /// <summary>
        /// 检查频率（星期 针对每周 有效）
        /// </summary>
        [Description("星期")]
        [FormFieldEdit]
        public WEEKDATAEnum? WEEKDATA { get; set; }

        /// <summary>
        /// 触发时间
        /// </summary>
        [Description("触发时间")]
        [FormFieldEdit]
        [FormFieldTable]
        [FormFieldQuery]
        public DateTime RUNSETTIME { get; set; }

        /// <summary>
        /// 启用标志
        /// </summary>
        [Description("启用标志")]
        [FormFieldTable]
        [FormFieldEdit]
        public FMEnableStatusEnum ENABLE_STATUS { get; set; }


        /// <summary>
        /// 导航属性：限制部门（级别）
        /// </summary>
        [Description("导航属性：限制部门（级别）")]
        public ICollection<T_SC_MT_PLAN_SET_DEPARTMENT> Nav_ListSetDepartment { get; set; }
    }
}