package com.yifu.cloud.plus.v1.yifu.insurances.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * @author licancan
 * @description 导出办理VO
 * @date 2022-07-21 14:21:39
 */
@Data
@Schema(description = "导出办理VO")
public class InsuranceExportListVO implements Serializable {
	private static final long serialVersionUID = -8159190612104775933L;

	/**
	 * 主键
	 */
	private String id;

	/**
	 * 项目名称
	 */
	@Schema(description = "项目名称")
	private String projectName;

	/**
	 * 项目编码
	 */
	@Schema(description = "项目编码")
	private String deptNo;

	/**
	 * 员工姓名
	 */
	@Schema(description = "员工姓名")
	private String empName;

	/**
	 * 员工身份证号
	 */
	@Schema(description = "员工身份证号")
	private String empIdcardNo;

	/**
	 * 投保类型， 1新增、3批增、4替换
	 */
	@Schema(description = " 投保类型， 1新增、3批增、4替换")
	private Integer buyType;

	/**
	 * 投保办理状态 1待投保 2投保中 3已投保 4投保退回 5 已减员
	 */
	@JsonIgnore
	private Integer buyHandleStatus;

	/**
	 * 购买月数
	 */
	@Schema(description = "购买月数")
	private Long buyMonth;

	/**
	 * 购买天数
	 */
	@Schema(description = "购买天数")
	private Long buyDay;

	/**
	 * 投保岗位
	 */
	@Schema(description = "投保岗位")
	private String post;

	/**
	 * 商险购买地省
	 */
	@Schema(description = "商险购买地省")
	private String insuranceProvinceName;

	/**
	 * 商险购买地市
	 */
	@Schema(description = "商险购买地市")
	private String insuranceCityName;

	/**
	 * 商险办理省
	 */
	@Schema(description = "商险办理省")
	private String insuranceHandleProvinceName;

	/**
	 * 商险办理城市
	 */
	@Schema(description = "商险办理城市")
	private String insuranceHandleCityName;

	/**
	 * 保单开始时间
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
	@Schema(description = "保单开始时间")
	private LocalDate policyStart;

	/**
	 * 保单结束时间
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
	@Schema(description = "保单结束时间")
	private LocalDate policyEnd;

	/**
	 * 保单生效时间
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
	@JsonIgnore
	private LocalDate policyEffect;

	/**
	 * 保险公司名称(冗余字段)
	 */
	@Schema(description = "保险公司名称")
	private String insuranceCompanyName;

	/**
	 * 险种名称
	 */
	@Schema(description = "险种名称")
	private String insuranceTypeName;

	/**
	 * 购买标准
	 */
	@Schema(description = "购买标准")
	private String buyStandard;

	/**
	 * 医疗额度
	 */
	@Schema(description = "医疗额度")
	private String medicalQuota;

	/**
	 * 身故或残疾额度
	 */
	@Schema(description = "身故或残疾额度")
	private String dieDisableQuota;

	/**
	 * 结算月
	 */
	@Schema(description = "结算月")
	private String settleMonth;

	/**
	 * 结算类型 (0、预估 1、实缴)
	 */
	@Schema(description = "结算类型 (0、预估 1、实缴)")
	private Integer settleType;

	/**
	 * 保单编号
	 */
	@Schema(description = "保单编号")
	private String policyNo;

	/**
	 * 创建人姓名
	 */
	@Schema(description = "创建人(派单人)")
	private String createName;

	/**
	 * 备注
	 */
	@Schema(description = "备注")
	private String remark;

	/**
	 * 封面抬头
	 */
	@Schema(description = "封面抬头")
	private String invoiceTitle;

	/**
	 * 是否地市自购0是 1 否
	 */
	@Schema(description = "是否地市自购")
	private String isAdress;

	/**
	 * 派单备注
	 */
	@Schema(description = "派单备注")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "派单备注")
	private String remarkDispatch;


	/**
	 * 默认结算信息id
	 */
	@ExcelIgnore
	@Schema(description = "默认结算信息id")
	private String defaultSettleId;
}
