
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.OG
{
    /// <summary>
    /// 员工意见上报表
    /// </summary>
    [Description("员工意见上报表")]
    [DataRuleField("LAUNCH_DEPARTMENT_ID")]
    public class T_OG_EMPLOYEE_OPINION_REPORT : MesEntityBase
    {

        /// <summary>
        /// 上报日期
        /// </summary>
        [Description("上报日期")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public DateTime? START_TIME { get; set; }

        /// <summary>
        /// 上报员工
        /// </summary>
        [Description("上报员工")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_User")]
        public Guid? USER_ID { get; set; }

        /// <summary>
        /// 导航: 上报员工
        /// </summary>
        [Description("导航: 上报员工")]
        public T_FM_USER Nav_User { get; set; }

        /// <summary>
        /// 所在部门
        /// </summary>
        [Description("所在部门")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_LaunchDepartment")]
        public Guid? LAUNCH_DEPARTMENT_ID { get; set; }

        /// <summary>
        /// 导航: 所在部门
        /// </summary>
        [Description("导航: 所在部门")]
        public T_FM_DEPARTMENT Nav_LaunchDepartment { get; set; }        
        /// <summary>
        /// 建议事项名称
        /// </summary>
        [Description("建议事项名称")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldLength(100)] 
        public string NAME { get; set; }        
        /// <summary>
        /// 建议事项类别ID
        /// </summary>
        [Description("建议事项类别")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_ItemEnum")]
        public Guid? TYPE_ID { get; set; }

        /// <summary>
        /// 导航: 建议事项类别
        /// </summary>
        [Description("导航: 建议事项类别")]
        public T_OG_EMPLOYEE_ITEM_CATEGORY_ENUM Nav_ItemEnum { get; set; }

        /// <summary>
        /// 建议事项描述
        /// </summary>
        [Description("建议事项描述")]
        [FormFieldEdit]
        [DataFieldLength(500)] 
        public string DESCRIPTION { get; set; }

        /// <summary>
        /// 导航属性：建议文件附件
        /// </summary>
        [Description("导航属性：建议文件附件")]
        public ICollection<T_OG_EMPLOYEE_OPINION_SUGGESTION_FILE> Nav_FileList { get; set; }        
        /// <summary>
        /// 受理人
        /// </summary>
        [Description("受理人")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Assignee")]
        public Guid? ASSIGNEE_ID { get; set; }

        /// <summary>
        /// 导航: 受理人
        /// </summary>
        [Description("导航: 受理人")]
        public T_FM_USER Nav_Assignee { get; set; }

        /// <summary>
        /// 受理状况
        /// </summary>
        [Description("受理状况")]
        [EnumName("OGAssigneeStatus")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public OGAssigneeStatus ASSIGNEE_STATUS { get; set; }        
        /// <summary>
        /// 受理状况描述
        /// </summary>
        [Description("受理状况描述")]
        [FormFieldEdit]
        [DataFieldLength(500)] 
        public string ASSIGNEE_DESCRIPTION { get; set; }

        /// <summary>
        /// 落实部门ID
        /// </summary>
        [Description("落实部门")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_DoDepartment")]
        public Guid? DO_DEPARTMENT_ID { get; set; }

        /// <summary>
        /// 导航: 落实部门
        /// </summary>
        [Description("导航: 落实部门")]
        public T_FM_DEPARTMENT Nav_DoDepartment { get; set; }        
        /// <summary>
        /// 落实人员ID
        /// </summary>
        [Description("落实人员")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_DoUser")]
        public Guid? DO_USER_ID { get; set; }

        /// <summary>
        /// 导航: 落实人员
        /// </summary>
        [Description("导航: 落实人员")]
        public T_FM_USER Nav_DoUser { get; set; }        
        /// <summary>
        /// 落实情况描述
        /// </summary>
        [Description("落实情况描述")]
        [FormFieldEdit]
        [DataFieldLength(500)]
        public string IMPLEMENT_DESCRIPTION { get; set; }

        /// <summary>
        /// 导航属性：落实文件附件
        /// </summary>
        [Description("导航属性：落实文件附件")]
        public ICollection<T_OG_EMPLOYEE_OPINION_IMPLEMENT_FILE> Nav_ImpFileList { get; set; }

        /// <summary>
        /// 反馈的满意度
        /// </summary>
        [Description("反馈的满意度")]
        [EnumName("OGSatisfactionStatus")]
        [FormFieldTable]
        [FormFieldQuery]
        public OGSatisfactionStatus SATISFACTION_STATUS { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        [Description("状态")]
        [EnumName("OGEmployeeOpinionReportStatus")]
        [FormFieldTable]
        [FormFieldQuery]
        public OGEmployeeOpinionReportStatus STATUS { get; set; }
        [Description("是否发布")]
        [DataFieldIngore]
        public string PUBLISH { get; set; }
        [DataFieldIngore]
        public int IS_OVERTIME { get; set; }
    }
}
