package cn.timer.api.bean.insure;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Transient;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


/**
 * 被保人
 *
 * @author wgd
 * @email 862422848@qq.com
 * @date 2022-03-11 09:06:53
 */
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "insure_user")
@ApiModel("被保人")
public class InsureUser extends Model<InsureUser> {
	private static final long serialVersionUID = 1L;

	/**
	* id
	*/
	@Id
	@GeneratedValue
	@TableId(type = IdType.AUTO)
	@ApiModelProperty(value = "编号")
	private Integer id;
	/**
	* 被保险人请求流水号
	*/
	@ApiModelProperty(value = "被保险人请求流水号")
	private String transId;
	/**
	* 批次核算保费
	*/
	@ApiModelProperty(value = "批次核算保费")
	private Double price;
	/**
	* 姓名
	*/
	@ApiModelProperty(value = "姓名")
	private String insuredName;
	/**
	* 被保险人批次号
	*/
	@ApiModelProperty(value = "被保险人批次号")
	private String batchNo;
	/**
	* 保单批次保费
	*/
	@ApiModelProperty(value = "保单批次保费")
	private Double premium;
	/**
	* 被保险人联系电话
	*/
	@ApiModelProperty(value = "被保险人联系电话")
	private String insuredMobile;
	/**
	* 证件号码
	*/
	@ApiModelProperty(value = "证件号码")
	private String insuredNo;
	/**
	* 联系人姓名
	*/
	@ApiModelProperty(value = "联系人姓名")
	private String insuredEContact;
	/**
	* 基础计划 30万雇主/3万医疗	36968,50万雇主/5万医疗	36969,80万雇主/10万医疗	36970,80万雇主/20万医疗	36971,100万雇主/10万医疗 36972
	*/
	@ApiModelProperty(value = "基础计划")
	private String benefitBasicPlan;
	/**
	* 职业类别 A类	63119 B类	63120 C类	63121
	*/
	@ApiModelProperty(value = "职业类别")
	private String benefitOccupationCategory;
	/**
	* 参保人数
	*/
	@ApiModelProperty(value = "参保人数")
	private String benefitElEmployeeNumberT;
	/**
	* 二、三轮车车架号(必选)
	*/
	@ApiModelProperty(value = "二、三轮车车架号")
	private String tricycleFrameNumber;
	/**
	* 保单号
	*/
	@ApiModelProperty(value = "保单号")
	private String policyNo;
	/**
	* 参保状态:1参保中 2已失效
	*/
	@ApiModelProperty(value = "参保状态")
	private String status;
	/**
	* 被保人类型:1个人 2企业
	*/
	@ApiModelProperty(value = "被保人类型")
	private Integer type;
	/**
	* 企业id
	*/
	@ApiModelProperty(value = "企业id")
	private Integer orgCode;
	/**
	* 个人id
	*/
	@ApiModelProperty(value = "个人id")
	private Integer userId;
	/**
	* 人员清单
	*/
	@ApiModelProperty(value = "人员清单")
	private String applicantEmployeeList;

	@ApiModelProperty(value = "生效日期")
	private Date policyDateStart;

	@ApiModelProperty(value = "失效日期")
	private Date policyDateEnd;


	@ApiModelProperty(value = "投保状态:1成功 2失败 3待更新")
	private Integer insureStatus;

	@ApiModelProperty(value = "保单id")
	private Integer policyId;

	@ApiModelProperty(value = "替换流水号,使用trans_id,RP_开头")
	private String replaceTransId;

	@ApiModelProperty(value = "申请类型:1新增 2投保 3批改")
	private Integer applyType;

	@ApiModelProperty(value = "批改原因")
	private String reason;

	@ApiModelProperty(value = "录单时间")
	private Date createTime;

	@Transient
	@TableField(exist = false)
	@ApiModelProperty(value = "导入备注")
	private String remake;

	@Transient
	@TableField(exist = false)
	@ApiModelProperty(value="原被保人",example="原被保人")
	private InsureUser originaUser;

	@ApiModelProperty(value="insure_product_plan表的Id")
	private Integer productPlanId;

	@Transient
	@TableField(exist = false)
	@ApiModelProperty(value="方案集合",example="方案集合")
	private List planIds;

	@Transient
	@TableField(exist = false)
	@ApiModelProperty(value="产品名称",example="产品名称")
	private String productName;
}