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;
using System.Text;

namespace APT.MS.Domain.Entities.SC.PR
{
    [Description("变化管理任务落实表")]
    public class T_PR_CHANGE_TASK_IMPLEMENT : MesEntityBase
    {
        [Description("编号")]
        [DataFieldIngore]
        public string CODE { get; set; }

        [Description("发起时间")]
        public DateTime? TIME { get; set; }
        [Description("发起人员")]
        [DataFieldForeignKey("Nav_User")]
        public Guid? USER_ID { get; set; }

        [Description("发起人员")]
        public virtual T_FM_USER Nav_User { get; set; }

        [Description("发起部门")]
        [DataFieldForeignKey("Nav_Department")]
        public Guid? DEPARTMENT_ID { get; set; }

        [Description("发起部门")]
        public virtual T_FM_DEPARTMENT Nav_Department { get; set; }
        [Description("变化类型")]
        [DataFieldIngore]
        public ICollection<T_PR_CHANGE_IDENTIFY_EVALUATION_TYPE> Nav_Types { get; set; }

        [Description("变化描述")]
        [DataFieldIngore]
        public string DESCRIPTION { get; set; }

        [Description("执行状况")]
        [EnumName("PRPerformStatusEnum")]
        public PRPerformStatusEnum? PERFORM_STATUS { get; set; }

        [Description("执行人员")]
        public ICollection<T_PR_CHANGE_TASK_IMPLEMENT_USER> Nav_Users { get; set; }

        [Description("执行情况")]
        public string PERFORM_DESCRIPTION { get; set; }

        [Description("未执行原因")]
        public string REASON { get; set; }

        [Description("附件")]
        public ICollection<T_PR_CHANGE_TASK_IMPLEMENT_FILE> Nav_Files { get; set; }

        [Description("状态")]
        [EnumName("PFStandardStatus")]
        public PFStandardStatus STATUS { get; set; }

        [Description("是否发布")]
        [DataFieldIngore]
        public string PUBLISH { get; set; }

        [Description("变化识别评估表")]
        [DataFieldForeignKey("Nav_Change")]
        public Guid? CHANGE_IDENTIFY_EVALUATION_ID { get; set; }

        [Description("变化识别评估表")]
        public virtual T_PR_CHANGE_IDENTIFY_EVALUATION Nav_Change { get; set; }

        [Description("变化后执行任务")]
        [DataFieldForeignKey("Nav_Task")]
        public Guid? TASK_ID { get; set; }

        [Description("变化后执行任务")]
        public virtual T_PR_PERFORM_TASK_SET Nav_Task { get; set; }

        [Description("不通过原因")]
        public string NOTHROUGH_REASON { get; set; }
    }
}
