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("DEPARTMENT_ID")]
    public class T_OG_EMPLOYEE_OPINION_COLLECTION : MesEntityBase
    {
        /// <summary>
        /// 征集目的
        /// </summary>
        [Description("征集目的")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldLength(50)] 
        public string NAME { get; set; }

        /// <summary>
        /// 征集开始时间
        /// </summary>
        [Description("征集开始时间")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public DateTime? START_TIME { get; set; }

        /// <summary>
        /// 征集结束时间
        /// </summary>
        [Description("征集结束时间")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public DateTime? END_TIME { get; set; }

        /// <summary>
        /// 征集部门
        /// </summary>
        [Description("征集部门")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Department")]
        public Guid? DEPARTMENT_ID { get; set; }

        /// <summary>
        /// 导航: 征集部门
        /// </summary>
        [Description("导航: 征集部门")]
        public T_FM_DEPARTMENT Nav_Department { get; set; }

        /// <summary>
        /// 征集人员ID
        /// </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("导航: 员工意见征集表意见反馈表")]
        [FormFieldEdit]
        public ICollection<T_OG_EMPLOYEE_OPINION_COLLECTION_USER> Nav_Users { get; set; }        
        /// <summary>
        /// 负责人ID
        /// </summary>
        [Description("负责人")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_ChargeUser")]
        public Guid? CHARGE_USER_ID { get; set; }

        /// <summary>
        /// 导航: 负责人
        /// </summary>
        [Description("导航: 负责人")]
        public T_FM_USER Nav_ChargeUser { get; set; }

        /// <summary>
        /// 安环部负责人ID
        /// </summary>
        [Description("安环部负责人")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_AHChargeUser")]
        public Guid? AH_CHARGE_USER_ID { get; set; }        
        /// <summary>
        /// 导航: 负责人
        /// </summary>
        [Description("导航: 安环部负责人")]
        public T_FM_USER Nav_AHChargeUser { get; set; }

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

        [DataFieldIngore]
        public int IS_OVERTIME { get; set; }
    }
}
