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

namespace APT.MS.Domain.Entities.SC
{
    [Description("会议纪要")]
    [DataRuleField("DEPARTMENT_ID")]
    public class T_SC_MT_MEETING_MINUTES : MesEntityBase
    {
        /// <summary>
        /// 会议表
        /// </summary>
        [Description("会议表")]
        [DataFieldForeignKey("Nav_Meeting")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public Guid MEETING_ID { get; set; }

        /// <summary>
        /// 会议表
        /// </summary>
        [Description("导航：会议表")]
        public virtual T_SC_MT_MEETING Nav_Meeting { get; set; }


        /// <summary>
        /// 会议类型
        /// </summary>
        [Description("会议类型")]
        [FormFieldQuery]
        [FormFieldTable]
        public SCMEETINGTYPE MEETINGTYPE { get; set; }

        /// <summary>
        /// 导航属性：请假人员
        /// </summary>
        [Description("导航属性：请假人员")]
        public ICollection<T_SC_MT_MEETING_PASKFORLEAVE> Nav_ListPAskForLeave { get; set; }

        /// <summary>
        /// 导航属性：缺席人员
        /// </summary>
        [Description("导航属性：缺席人员")]
        public ICollection<T_SC_MT_MEETING_PABSENCE> Nav_ListPAbsence { get; set; }

        /// <summary>
        /// 导航属性：参会人员
        /// </summary>
        [Description("导航属性：参会人员")]
        public ICollection<T_SC_MT_MEETING_PJOIN> Nav_ListPJoin { get; set; }


        /// <summary>
        /// 导航属性：审批人员
        /// </summary>
        [Description("导航属性：审批人员")]
        public ICollection<T_SC_MT_MINUTES_PREVIEW> Nav_ListPReview { get; set; }

        /// <summary>
        /// 会议纪要明细表
        /// </summary>
        [Description("导航：会议纪要明细表")]
        [FormFieldEdit]
        public virtual ICollection<T_SC_MT_MEETING_MINUTES_DETAIL> Nav_ListMinutesDetail { get; set; }

        /// <summary>
        /// 会议决议（普通会议）
        /// </summary>
        [DataFieldLength(3000)]
        [FormFieldEdit]
        [Description("会议决议")]
        public string RESOLUTION { get; set; }

        /// <summary>
        /// 会议记录
        /// </summary>
        [Description("会议记录")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public string MEETINGRECORD { get; set; }

        /// <summary>
        /// 会议意见
        /// </summary>
        [Description("导航属性：会议意见")]
        [FormFieldEdit]
        public ICollection<T_SC_MT_MEETING_MINUTES_CONTENT> Nav_ListContent { get; set; }

        /// <summary>
        /// 导航：会议纪要附件表
        /// </summary>
        [Description("导航：会议纪要附件表")]
        public virtual List<T_SC_MT_MEETING_MINUTES_FILE> Nav_Files { get; set; }

        /// <summary>
        /// 纪要状态
        /// </summary>
        [Description("纪要状态")]
        [FormFieldTable]
        [FormFieldQuery]
        public PFStandardStatus STATUS { get; set; }

        /// <summary>
        /// 纪要状态
        /// </summary>
        [Description("纪要状态")]
        [DataFieldIngore]
        public string STATUSSHOW { get; set; }

        /// <summary>
        /// 审批流
        /// </summary>
        [Description("审批流")]
        [DataFieldForeignKey("Nav_Approve")]
        public Guid? APPROVE_ID { get; set; }

        /// <summary>
        /// 审批流
        /// </summary>
        [Description("审批流")]
        public T_PF_APPROVE Nav_Approve { get; set; }

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


        /// <summary>
        /// 会议发起部门
        /// 做数据权限用
        /// </summary>
        [Description("发起部门")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Department")]
        public Guid? DEPARTMENT_ID { get; set; }

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