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

namespace APT.MS.Domain.Entities.TI
{
    /// <summary>
    /// 工伤保险理赔信息记录
    /// </summary>
    [Description("工伤保险理赔信息记录")]
    [DataRuleField("DEPARTMENT_ID")]
    public class T_TI_INSURANCE_CLAIM_RECORD : MesEntityBase
    {

        /// <summary>
        /// 发起部门ID
        /// </summary>
        [Description("发起部门")]
        [FormFieldTable]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Department")]
        public Guid? DEPARTMENT_ID { get; set; }

        /// <summary>
        /// 发起部门
        /// </summary>
        [Description("发起部门")]
        [FormFieldQuery]
        public virtual T_FM_DEPARTMENT Nav_Department { get; set; }

        /// <summary>
        /// 用户
        /// </summary>
        [Description("用户")]
        [DataFieldForeignKey("Nav_User")]
        [FormFieldTable]
        [FormFieldEdit]
        public Guid? USER_ID { get; set; }

        /// <summary>
        /// 用户
        /// </summary>
        [Description("用户")]
        [FormFieldQuery]
        public T_FM_USER Nav_User { get; set; }

        /// <summary>
        /// 事故事件上报ID
        /// </summary>
        [Description("事故事件上报")]
        [DataFieldForeignKey("Nav_Accident")]
        [FormFieldTable]
        [FormFieldEdit]
        public Guid? ACCIDENT_ID { get; set; }

        /// <summary>
        /// 导航: 事故事件上报
        /// </summary>
        [Description("导航: 事故事件上报")]
        [FormFieldQuery]
        public T_AE_ACCIDENT_EVENT_REPORT Nav_Accident { get; set; }

        /// <summary>
        /// 受伤时间
        /// </summary>
        [Description("受伤日期")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public DateTime? INJURE_TIME { get; set; }

        /// <summary>
        /// 受伤部位/疾病名称
        /// </summary>
        [Description("受伤部位/疾病名称")]
        [FormFieldEdit]
        [DataFieldLength(200)]
        public string INJURE_DETAIL { get; set; }

        /// <summary>
        /// 是否住院
        /// </summary>
        [Description("是否住院")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public YesNoEnum? IN_HOSPITAL { get; set; }

        /// <summary>
        /// 就诊医院
        /// </summary>
        [Description("就诊医院")]
        [FormFieldEdit]
        [DataFieldLength(200)]
        public string HOSPITAL { get; set; }


        /// <summary>
        /// 员工报销金额（元）
        /// </summary>
        [Description("员工报销金额（元）")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public decimal? USER_CLAIM_AMOUNT { get; set; }

        /// <summary>
        /// 社保报销金额（元）
        /// </summary>
        [Description("社保报销金额（元）")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public decimal? INSURANCE_CLAIM_AMOUNT { get; set; }

        /// <summary>
        /// 工伤认定时间
        /// </summary>
        [Description("工伤认定时间")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public DateTime? INJURE_AFFIRM_TIME { get; set; }

        /// <summary>
        /// 工伤认定机构
        /// </summary>
        [Description("工伤认定机构")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        [DataFieldLength(200)]
        public string INJURE_AFFIRM_AGENCY { get; set; }

        /// <summary>
        /// 伤残等级
        /// </summary>
        [Description("伤残等级")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public TIDisabilityLevelEnum? DISABILITY_LEVEL { get; set; }

        /// <summary>
        /// 伤残认定时间
        /// </summary>
        [Description("伤残认定时间")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public DateTime? DISABILITY_AFFIRM_TIME { get; set; }

        /// <summary>
        /// 伤残认定机构
        /// </summary>
        [Description("伤残认定机构")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        [DataFieldLength(200)]
        public string DISABILITY_AFFIRM_AGENCY { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [Description("备注")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        [DataFieldLength(1000)]
        public string REMARK { get; set; }

        /// <summary>
        /// 导航属性：附件
        /// </summary>
        [Description("导航属性：附件")]
        public ICollection<T_TI_INSURANCE_CLAIM_RECORD_FILE> Nav_Files { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        [Description("状态")]
        [FormFieldTable]
        [FormFieldQuery]
        public PFStandardStatus STATUS { get; set; }
    }
}
