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;
namespace APT.MS.Domain.Entities.SE
{
    /// <summary>
    /// 培训记录
    /// </summary>
    [Description("培训记录")]
    public class T_SE_TRAIN_RECORD : MesEntityBase
    {
        /// <summary>
        /// 通知ID
        /// </summary>
        [Description("通知")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Notify")]
        public Guid NOTIFY_ID { get; set; }
        /// <summary>
        /// 通知
        /// </summary>
        [Description("通知")]
        public T_SE_TRAIN_NOTIFY Nav_Notify { get; set; }
        /// <summary>
        /// 导航属性：参与人员
        /// </summary>
        [Description("培训人员")]
        [FormFieldEdit]
        public ICollection<T_SE_TRAIN_RECORD_USER> Nav_Users { get; set; }



        /// <summary>
        /// 导航属性：人员试题
        /// </summary>
        [Description("导航属性：人员试题")]
        [FormFieldEdit]
        public ICollection<T_SE_TRAIN_RECORD_PAPER> Nav_Papers { get; set; }
        /// <summary>
        /// 导航属性：附件
        /// </summary>
        [Description("导航属性：附件")]
        public ICollection<T_SE_TRAIN_RECORD_FILE> Nav_Files { get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        [Description("状态")]
        [FormFieldTable]
        [FormFieldQuery]
        [EnumName("SETrainRecordStatus")]
        public SETrainRecordStatus STATUS { get; set; }
        [Description("是否发布")]
        [DataFieldIngore]
        public string PUBLISH { get; set; }
        [DataFieldIngore]
        public int IS_OVERTIME { get; set; }

        /// <summary>
        /// 培训人数
        /// </summary>
        [Description("培训人数")]
        public int TRAIN_COUNT { get; set; }

        /// <summary>
        /// 发送签到时间
        /// </summary>
        [Description("发送签到时间")]
        public DateTime? DT_SSEND_SIGN { get; set; }

        /// <summary>
        /// 是否结束签到
        /// </summary>
        [Description("是否结束签到")]
        public bool ISSTOPSIGN { get; set; }

        /// <summary>
        /// 取消原因
        /// </summary>
        [Description("取消原因")]
        [DataFieldLength(200)]
        public string REASONCANCLE { get; set; }

        /// <summary>
        /// 审阅人
        /// </summary>
        [Description("审阅人")]
        [DataFieldForeignKey("Nav_UserApro")]
        public Guid?  USER_ID_APPROVE { get; set; }

        /// <summary>
        /// 审阅导航
        /// </summary>
        [Description("审阅导航")]
        public T_FM_USER Nav_UserApro { get; set; }

        /// <summary>
        /// 审阅时间
        /// </summary>
        [Description("审阅时间")]
        public DateTime? DT_APPROVE { get; set; }

        /// <summary>
        /// 是否触发记录通知
        /// </summary>
        [Description("是否触发记录通知")]
        public bool IS_SENDNOTICE { get; set; }
    }
}
