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

namespace APT.MS.Domain.Entities.BS
{
    /// <summary>
    /// 制定任务
    /// </summary>
    [Description("制定任务")]
    public class T_BS_PLAN_SET : MesEntityBase
    {
        /// <summary>
        /// 检查计划名称
        /// </summary>
        [Description("制定任务名称")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        [DataFieldLength(200)]
        public string NAME { get; set; }

        /// <summary>
        /// 检查类型
        /// </summary>
        [Description("检查类型")]
        [DataFieldForeignKey("Nav_CheckType")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public Guid? CHECK_TYPE_ID { get; set; }

        /// <summary>
        /// 导航：检查类型表
        /// </summary>
        [Description("导航：检查类型")]
        public virtual T_BS_CHECK_TYPE Nav_CheckType { get; set; }

        /// <summary>
        /// 检查层级
        /// </summary>
        [Description("检查层级")]
        [DataFieldForeignKey("Nav_CheckTypeLevel")]
        [FormFieldTable]
        [FormFieldEdit]
        public Guid CHECK_TYPE_LEVEL_ID { get; set; }

        /// <summary>
        /// 导航：检查层级
        /// </summary>
        [Description("导航：检查层级")]
        public virtual T_BS_CHECK_TYPE_LEVEL Nav_CheckTypeLevel { get; set; }

        /// <summary>
        /// 通知对象
        /// </summary>
        [Description("通知对象")]
        [EnumName("BSPLANCHECKOBJECTEnum")]
        [FormFieldTable]
        [FormFieldEdit]
        public int PLANCHECKOBJECT { get; set; }

        /// <summary>
        /// 检查频率
        /// </summary>
        [Description("检查频率")]
        [EnumName("BSPLANCHECKFREQUENCYEnum")]
        [FormFieldTable]
        [FormFieldEdit]
        public int 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("星期")]
        [EnumName("WEEKDATAEnum")]
        [FormFieldEdit]
        public int? WEEKDATA { get; set; }

        /// <summary>
        /// 检查时间
        /// </summary>
        [Description("检查时间")]
        [FormFieldEdit]
        [FormFieldTable]
        public DateTime? CHECKTIME { get; set; }


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

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

        /// <summary>
        /// 检查范围
        /// </summary>
        [Description("检查范围")]
        public virtual ICollection<T_BS_PLAN_SET_OBJECT> Nav_ListSetObject { get; set; }

        /// <summary>
        /// 检查部门范围
        /// </summary>
        [Description("检查部门范围")]
        public virtual ICollection<T_BS_PLAN_SET_DEP_OBJECT> Nav_ListSetDepObject { get; set; }
    }
}