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

namespace APT.MS.Domain.Entities.SC.PT
{
    [Description("安全方针调查表")]
    [DataRuleField("DEPARTMENT_ID")]
    public class T_PT_SAFETY_POLICY_SURVEY : MesEntityBase
    {
        [Description("发起部门ID")]
        [DataFieldForeignKey("Nav_Department")]
        public Guid? DEPARTMENT_ID { get; set; }

        [Description("导航属性：发起部门表")]
        public virtual T_FM_DEPARTMENT Nav_Department { get; set; }

        [Description("年度")]
        [FormFieldTable]
        [FormFieldQuery]
        public string YEAR { get; set; }

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

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

        [Description("截止时间")]
        [FormFieldTable]
        [FormFieldQuery]
        public DateTime? COMPLETE_DATE { get; set; }

        [Description("导航属性：征集要求表")]
        public ICollection<T_PT_SAFETY_POLICY_SURVEY_COLLECT> Nav_Collects { get; set; }

        [Description("导航属性：发布范围表")]
        [FormFieldEdit]
        public ICollection<T_PT_SAFETY_POLICY_SURVEY_RANGE> Nav_Ranges { get; set; }

        [Description("导航属性：安全方针调查反馈表")]
        [FormFieldEdit]
        public ICollection<T_PT_SAFETY_POLICY_SURVEY_FEEDBACK> Nav_Feedbacks { get; set; }
        
        [Description("状态")]
        [FormFieldTable]
        [FormFieldQuery]
        public PFStandardStatus STATUS { get; set; }

        [Description("是否发布")]
        [DataFieldIngore]
        public string PUBLISH { get; set; }

        [Description("意向方针ID")]
        [DataFieldForeignKey("Nav_Guidelines")]
        public Guid? GUIDELINES_ID { get; set; }

        [Description("导航属性：意向方针")]
        public virtual T_PT_INTENTIONAL_GUIDELINES Nav_Guidelines { get; set; }
        [Description("是否满意")]
        [DataFieldIngore]
        public bool IS_AGREE { get; set; }
        [Description("其他建议")]
        [DataFieldIngore]
        public string OTHER_SUGGESTIONS { get; set; }
        [Description("导航属性：意向方针概率")]
        [DataFieldIngore]
        public virtual List<IntentionalGuidModel> IntentionalGuids { get; set; }

        [Description("是否跑批")]
        public int IS_RUN { get; set; }

        [Description("是否清除待办")]
        public int IS_DEAL { get; set; }
        [Description("满意度")]
        [DataFieldIngore]
        public string RATE { get; set; }
        [Description("征集总人数")]
        [DataFieldIngore]
        public int ALL_USER_COUNT { get; set; }
        [Description("参与总人数")]
        [DataFieldIngore]
        public int USER_COUNT { get; set; }
        [Description("参与率")]
        [DataFieldIngore]
        public string USER_RATE { get; set; }
        [DataFieldIngore]
        public int IS_OVERTIME { get; set; }
    }
}
