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.Entities.BS;
using APT.MS.Domain.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel;

namespace APT.MS.Domain.Entities.AE
{
    /// <summary>
    /// 事故事件调查结果填报表
    /// </summary>
    [Description("事故事件调查结果填报表")]
    [DataRuleField("Nav_AccidentEventReport.DEPARTMENT_ID")]
    public class T_AE_ACCIDENT_EVENT_SURVEY_RESULT : MesEntityBase
    {
        /// <summary>
        /// 事故事件上报表ID
        /// </summary>
        [Description("事故事件上报表")]
        [DataFieldForeignKey("Nav_AccidentEventReport")]
        [FormFieldTable]
        [FormFieldEdit]
        public Guid? REPORT_ID { get; set; }

        /// <summary>
        /// 事故事件上报表
        /// </summary>
        [Description("事故事件上报表")]
        [FormFieldQuery]
        public virtual T_AE_ACCIDENT_EVENT_REPORT Nav_AccidentEventReport { get; set; }

        /// <summary>
        /// 导航属性： 致害物
        /// </summary>
        [Description("导航属性： 致害物")]
        public virtual ICollection<T_AE_ACCIDENT_EVENT_SURVEY_DAMAGE_OBJECT> Nav_ListSurveyDamageObject { get; set; }

        /// <summary>
        /// 事故伤亡人数
        /// </summary>
        [Description("事故伤亡人数")]
        [FormFieldEdit]
        public int? CASUALTY_COUNT { get; set; }

        /// <summary>
        /// 直接经济损失（元）
        /// </summary>
        [Description("直接经济损失（元）")]
        [FormFieldEdit]
        public decimal? ECONOMIC_LOSSES { get; set; }

        /// <summary>
        /// 事故事件经过
        /// </summary>
        [Description("事故事件经过")]
        [FormFieldEdit]
        [DataFieldLength(1000)]
        public string ACCIDENT_COURSE { get; set; }

        /// <summary>
        /// 限制结案时间
        /// </summary>
        [Description("限制结案时间")]
        [FormFieldEdit]
        public DateTime? SYSTEMMAXTIME { get; set; }

        /// <summary>
        /// 实际结案时间
        /// </summary>
        [Description("实际结案时间")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public DateTime? TIME { get; set; }


        /// <summary>
        /// 导航属性：调查报告附件
        /// </summary>
        [Description("导航属性：调查报告附件")]
        public virtual ICollection<T_AE_ACCIDENT_EVENT_SURVEY_FILE> Nav_FilesSurvey { get; set; }

        /// <summary>
        /// 导航属性：公示文件附件
        /// </summary>
        [Description("导航属性：公示文件附件")]
        public virtual ICollection<T_AE_ACCIDENT_EVENT_SURVEY_PFILE> Nav_FilesP { get; set; }

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

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

        /// <summary>
        /// 导航属性：事故事件原因
        /// </summary>
        [Description("导航属性：事故事件原因")]
        public virtual ICollection<T_AE_ACCIDENT_EVENT_SURVEY_REASON> Nav_ListReason { get; set; }

        /// <summary>
        /// 导航属性：调查取证资料
        /// </summary>
        [Description("导航属性：调查取证资料")]
        public virtual ICollection<T_AE_ACCIDENT_EVENT_SURVEY_FORENSICS> Nav_ListForensics { get; set; }

        /// <summary>
        /// 导航属性：设备设施损失信息
        /// </summary>
        [Description("导航属性：设备设施损失信息")]
        public virtual ICollection<T_AE_ACCIDENT_EVENT_SURVEY_EQUIPMENT_LOSS> Nav_ListEquipmentLoss { get; set; }

        /// <summary>
        /// 导航属性：人员伤亡信息
        /// </summary>
        [Description("导航属性：人员伤亡信息")]
        public ICollection<T_AE_ACCIDENT_EVENT_SURVEY_CASUALTIES> Nav_ListCasualties { get; set; }

        /// <summary>
        /// 导航属性：行政处罚信息
        /// </summary>
        [Description("导航属性：行政处罚信息")]
        public virtual ICollection<T_AE_ACCIDENT_EVENT_SURVEY_ADM_PUNISHMENT> Nav_ListAdmPunishment { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        [Description("状态")]
        [FormFieldTable]
        [FormFieldQuery]
        public PFStandardStatus STATUS { 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; }
    }
}
