using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.OG;
using APT.MS.Domain.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace APT.MS.Domain.Entities.OG
{
    /// <summary>
    /// 人员信息表
    /// </summary>
    [Description("人员信息表")]
    public class T_OG_RELATED_USER : MesEntityBase
    {

        /// <summary>
        /// 相关方基本信息表ID
        /// </summary>
        [Description("相关方基本信息表")]
        [DataFieldForeignKey("Nav_Related", "Nav_Users")]
        public Guid RELATED_ID { get; set; }

        /// <summary>
        /// 导航：相关方基本信息表
        /// </summary>
        [Description("导航：相关方基本信息表")]
        public T_OG_RELATED Nav_Related { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        [Description("姓名")]
        [FormFieldEdit]
        public string NAME { get; set; }        
        /// <summary>
        /// 性别
        /// </summary>
        [Description("性别")]
        [FormFieldEdit]
        [EnumName("FMSexEnum")]
        public FMSexEnum GENDER { get; set; }

        /// <summary>
        /// 出生年月
        /// </summary>
        [Description("出生年月")]
        [FormFieldEdit]
        public DateTime? DATE_BIRTH { get; set; }        
        /// <summary>
        /// 人员类型
        /// </summary>
        [Description("人员类型")]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Type")]
        public Guid TYPE_ID { get; set; }
        /// <summary>
        /// 导航: 对接人
        /// </summary>
        [Description("导航: 对接人")]
        public T_OG_RELATED_USER_TYPE Nav_Type { get; set; }
        /// <summary>
        /// 资质证书名称
        /// </summary>
        [Description("资质证书名称")]
        [FormFieldEdit]
        public string CERTIFICATE_NAME { get; set; }
        /// <summary>
        /// 证件号
        /// </summary>
        [Description("证件号")]
        [FormFieldEdit]
        public string CERTIFICATE_NUMBER { get; set; }
        /// <summary>
        /// 资质证书有效期
        /// </summary>
        [Description("资质证书有效期")]
        [FormFieldEdit]
        public DateTime? VALIDITY_TIME { get; set; }        
        /// <summary>
        /// 导航属性：保险证明
        /// </summary>
        [Description("导航属性：保险证明")]
        public ICollection<T_OG_RELATED_USER_INSURANCE> Nav_Insurances { get; set; }
        /// <summary>
        /// 导航属性：证件上传
        /// </summary>
        [Description("导航属性：证件上传")]
        public ICollection<T_OG_RELATED_USER_HEALTH> Nav_Healths { get; set; }
        /// <summary>
        /// 导航属性：签名
        /// </summary>
        [Description("导航属性：签名")]
        public ICollection<T_OG_RELATED_USER_SIGN> Nav_Signs { get; set; }
    }
}
