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

namespace APT.MS.Domain.Entities.TI
{
    /// <summary>
    /// 参保人员表
    /// </summary>
    [Description("参保人员表")]
    public class T_TI_INSURANCE_USER_RECORD : MesEntityBase
    {
        /// <summary>
        /// 参保类型ID
        /// </summary>
        [Description("参保类型ID")]
        [DataFieldForeignKey("Nav_Record", "Nav_UserList")]
        public Guid? RECORD_ID { get; set; }

        /// <summary>
        /// 导航: 用户
        /// </summary>
        [Description("导航: 参保类型")]
        public T_TI_INSURANCE_RECORD Nav_Record { get; set; }

        /// <summary>
        /// 参保类型
        /// </summary>
        [Description("参保类型")]
        [FormFieldEdit]
        [FormFieldTable]
        [FormFieldQuery]
        public TIInsuranceTypeEnum? TYPE { get; set; }

        /// <summary>
        /// 部门名称
        /// </summary>
        [Description("部门名称")]
        [FormFieldEdit]
        [FormFieldTable]
        [FormFieldQuery]
        public string DEPARTMENTNAME { get; set; }

        /// <summary>
        /// 岗位名称
        /// </summary>
        [Description("岗位名称")]
        [FormFieldEdit]
        [FormFieldTable]
        [FormFieldQuery]
        public string USERPOSTNAME { get; set; }

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

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

        /// <summary>
        /// 参保时间
        /// </summary>
        [Description("参保时间")]
        [FormFieldEdit]
        [FormFieldTable]
        [FormFieldQuery]
        public DateTime? INSURE_TIME { get; set; }

        /// <summary>
        /// 参保状态
        /// </summary>
        [Description("参保状态")]
        [FormFieldEdit]
        [FormFieldTable]
        [FormFieldQuery]
        public TIInsuranceStatusEnum? INSURE_STATUS { get; set; }

        /// <summary>
        /// 停缴时间
        /// </summary>
        [Description("停缴时间")]
        [FormFieldEdit]
        [FormFieldTable]
        [FormFieldQuery]
        public DateTime? STOP_TIME { get; set; }

        /// <summary>
        /// 参保期限(月)
        /// </summary>
        [Description("参保期限(月)")]
        [FormFieldEdit]
        [FormFieldTable]
        [FormFieldQuery]
        public int? INSURE_DURATION { get; set; }

        /// <summary>
        /// 计算参保期限的年月 yyyy-MM-01 00:00:00
        /// </summary>
        [Description("计算参保时间的年月")]
        public DateTime? OPERATEYEARMON { get; set; }
        /// <summary>
        /// 序号
        /// </summary>
        [Description("序号")]
        [FormFieldEdit]
        public int ROW_NO { get; set; }
    }
}
