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

namespace APT.MS.Domain.Entities.SC.PT
{
    [Description("触发时间配置表")]
    public class T_PT_TIME_SET : MesEntityBase
    {
        /// <summary>
        /// 触发类型
        /// </summary>
        [Description("触发类型")]
        [FormFieldTable]
        [FormFieldEdit]
        public PTSetTypeEnum SET_TYPE { get; set; }
        [Description("编号")]
        [FormFieldTable]
        [FormFieldQuery]
        public string CODE { get; set; }

        [Description("名称")]
        [FormFieldTable]
        [FormFieldQuery]
        public string NAME { get; set; }

        [Description("方针调查时间")]
        public DateTime? POLICY_DATETIME { get; set; }

        [Description("目标与指标制定时间")]
        public DateTime? TARGET_DATETIME { get; set; }

        /// <summary>
        /// 触发频率
        /// </summary>
        [Description("触发频率")]
        [FormFieldTable]
        [FormFieldEdit]
        public BSPLANCHECKFREQUENCYEnum PLANCHECKFREQUENCY { get; set; }
       
        /// <summary>
        /// 检查频率（第几月 针对每季 有效）
        /// </summary>
        [Description("第几月")]
        [FormFieldEdit]
        public int? MONTH { 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; }

        [Description("部门层级")]
        [EnumName("FMDepartmentType")]
        public FMDepartmentType DEPARTMENT_TYPE { get; set; }

        [Description("组织架构")]
        [DataFieldForeignKey("Nav_Department")]
        public Guid? DEPARTMENT_ID { get; set; }

        [Description("组织架构")]
        public virtual T_FM_DEPARTMENT Nav_Department { get; set; }

        [Description("人员")]
        [DataFieldForeignKey("Nav_User")]
        public Guid? USER_ID { get; set; }

        [Description("人员")]
        public virtual T_FM_USER Nav_User { get; set; }

        [Description("岗位")]
        [DataFieldForeignKey("Nav_Post")]
        public Guid? POST_ID { get; set; }

        [Description("岗位")]
        public virtual T_FM_USER_POST Nav_Post { get; set; }
    }
}
