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

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.insurances.util.LocalDateConverter;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;

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

/**
 * 商险明细项目变更日志导出VO
 *
 * @author yifu
 * @date 2025-12-12
 */
@Data
@ColumnWidth(17)
@Tag(name = "商险明细项目变更日志导出VO")
public class InsuranceChangeLogExportVo implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 员工姓名
	 */
	@Schema(description = "员工姓名")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "员工姓名")
	private String empName;

	/**
	 * 员工身份证号码
	 */
	@Schema(description = "员工身份证号码")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "员工身份证号码")
	private String empIdcardNo;

	/**
	 * 保险公司名称
	 */
	@Schema(description = "保险公司名称")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "保险公司名称")
	private String insuranceCompanyName;

	/**
	 * 险种名称
	 */
	@Schema(description = "险种名称")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "险种名称")
	private String insuranceTypeName;

	/**
	 * 保单开始日期
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
	@Schema(description = "保单开始日期")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "保单开始日期", converter = LocalDateConverter.class)
	@DateTimeFormat("yyyy-MM-dd")
	private LocalDate policyStart;

	/**
	 * 保单结束日期
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
	@Schema(description = "保单结束日期")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "保单结束日期", converter = LocalDateConverter.class)
	@DateTimeFormat("yyyy-MM-dd")
	private LocalDate policyEnd;

	/**
	 * 购买标准
	 */
	@Schema(description = "购买标准")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "购买标准(元)")
	private String buyStandard;

	/**
	 * 操作人
	 */
	@Schema(description = "操作人")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "操作人")
	private String createName;

	/**
	 * 操作时间
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@Schema(description = "操作时间")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "操作时间")
	@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
	private LocalDateTime createTime;

	/**
	 * 操作内容(项目编码和项目名称变更)
	 */
	@Schema(description = "操作内容")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "操作内容")
	private String operateContent;

	/**
	 * 变更原因
	 */
	@Schema(description = "变更原因")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty(value = "变更原因")
	private String reason;
}


