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_YEAR_TRAIN_PLAN_DETAIL : MesEntityBase
    {
        /// <summary>
        /// 年度培训计划ID
        /// </summary>
        [Description("年度培训计划ID")]
        [DataFieldForeignKey("Nav_YearTrainPlan","Nav_YearTrainPlanDetail")]
        public Guid YEAR_TRAIN_PLAN_ID { get; set; }
        /// <summary>
        /// 导航: 年度培训计划
        /// </summary>
        [Description("导航: 年度培训计划")]
        public T_SE_YEAR_TRAIN_PLAN Nav_YearTrainPlan { get; set; }
        /// <summary>
        ///  培训月份
        /// </summary>
        [Description("培训月份")]
        [FormFieldEdit]
        public int MOON { get; set; }
        /// <summary>
        /// 培训类型ID
        /// </summary>
        [Description("培训类型ID")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_TrainTypeEnum")]
        public Guid? TYPE_ID { get; set; }
        /// <summary>
        /// 导航: 培训类型
        /// </summary>
        [Description("导航: 培训类型")]
        public T_SE_TRAIN_TYPE_ENUM Nav_TrainTypeEnum { get; set; }
        /// <summary>
        /// 培训名称
        /// </summary>
        [Description("培训名称")]
        [FormFieldEdit]
        [DataFieldLength(100)]
        public string NAME { get; set; }
        /// <summary>
        /// 导航: 培训内容
        /// </summary>
        [Description("培训内容")]
        public ICollection<T_SE_YEAR_TRAIN_PLAN_CONTENT> Nav_YearTrainPlanContent { get; set; }
        
        /// <summary>
        /// 培训级别
        /// </summary>
        [Description("培训级别")]
        [EnumName("FMDepartmentType")]
        [FormFieldEdit]
        public FMDepartmentType LEVEL { get; set; }
        /// <summary>
        /// 培训对象
        /// </summary>
        [Description("培训对象")]
        [DataFieldLength(100)]
        [FormFieldEdit]
        public string OBJECT { get; set; }
        /// <summary>
        /// 培训地点
        /// </summary>
        [Description("培训地点")]
        [DataFieldLength(100)]
        [FormFieldEdit]
        public string ADDRESS { get; set; }
        /// <summary>
        /// 培训形式
        /// </summary>
        [Description("培训形式")]
        [FormFieldEdit]
        [EnumName("TRAINMODELENUM")]
        [DataFieldLength(50)]
        public string TRAIN_MODEL { get; set; }
        /// <summary>
        /// 培训教材
        /// </summary>
        [Description("培训教材")]
        [DataFieldLength(300)]
        [FormFieldEdit]
        public string TEACHING_MATERIAL { get; set; }
        /// <summary>
        /// 培训老师
        /// </summary>
        [Description("培训老师")]
        [DataFieldLength(100)]
        [FormFieldEdit]
        public string TEACHER { get; set; }
        /// <summary>
        /// 考核方式ID
        /// </summary>
        [Description("考核方式")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_TrainCheckTypeEnum")]
        public Guid? CHECK_TYPE_ID { get; set; }
        /// <summary>
        /// 导航: 考核方式
        /// </summary>
        [Description("导航: 考核方式")]
        public T_SE_TRAIN_CHECK_TYPE_ENUM Nav_TrainCheckTypeEnum { get; set; }
        /// <summary>
        /// 责任部门ID
        /// </summary>
        [Description("责任部门")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_ResponsibilityDep")]
        public Guid? RESPONSIBILITY_DEP_ID { get; set; }
        /// <summary>
        /// 导航: 责任部门
        /// </summary>
        [Description("导航: 责任部门")]
        public T_FM_DEPARTMENT Nav_ResponsibilityDep { get; set; }
        /// <summary>
        /// 责任人ID
        /// </summary>
        [Description("责任人")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_ResponsibilityUser")]
        public Guid? RESPONSIBILITY_USER_ID { get; set; }
        /// <summary>
        /// 导航: 责任人
        /// </summary>
        [Description("导航: 责任人")]
        public T_FM_USER Nav_ResponsibilityUser { get; set; }

        /// <summary>
        /// 是否发布
        /// </summary>
        [Description("是否发布")]
        public int SEND { get; set; }
    }
}
