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

namespace APT.MS.Domain.Entities.BS
{
    /// <summary>
    /// 隐患通知
    /// </summary>
    [Description("隐患通知")]
    public class T_BS_RISK_SUBMIT_NOTICE : MesEntityBase
    {
        /// <summary>
        /// 编码
        /// </summary>
        [Description("编码")]
        [CUnique]
        [CodeRule((int)PFCodeRuleType.RiskSubmit)]
        [DataFieldLength(30)]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public string CODE { get; set; }

        /// <summary>
        /// 隐患通知名称
        /// </summary>
        [Description("隐患通知名称")]
        [DataFieldLength(100)]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public string NAME { get; set; }

        /// <summary>
        /// 隐患上报
        /// </summary>
        [Description("隐患上报")]
        [DataFieldForeignKey("Nav_Submit")]
        public Guid? RISK_SUBMIT_ID { get; set; }

        /// <summary>
        /// 导航：隐患上报
        /// </summary>
        [Description("导航：隐患上报")]
        public virtual T_BS_RISK_SUBMIT Nav_Submit { get; set; }

        /// <summary>
        /// 导航：隐患上报子表
        /// </summary>
        [Description("导航：隐患上报子表")]
        [FormFieldEdit]
        public virtual List<T_BS_RISK_SUBMIT_CONTENT> Nav_ListRiskSubmitContent { get; set; }


        /// <summary>
        /// 问题等级  重大 = 10,A = 20,B = 30,C = 40,D = 50,
        /// T_BS_CHECK_MAIN 中 有 这边冗余
        /// </summary>
        [Description("问题等级")]
        [EnumName("BSQuestionLevelEnum")]
        public int QUESTION_LEVEL { get; set; }

        /// <summary>
        /// 通知时间
        /// </summary>
        [Description("通知时间")]
        [DataFieldIngore]
        public DateTime? NOTICETIME { get; set; }

        /// <summary>
        /// 审批流表单编码参数
        /// </summary>
        [Description("审批流表单编码参数")]
        [DataFieldIngore]
        public string FORM_CODE { get; set; }


        /// <summary>
        /// 状态 10 已上报
        /// </summary>
        [Description("状态")]
        [EnumName("RiskContentState")]
        public int? RiskContentState { get; set; } = 20;


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

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

    }
}