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

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 合同流程中信息VO
 *
 * @author system
 * @date 2026-04-23
 */
@Data
@Schema(description = "合同流程中信息VO")
public class TContractPreDetailVo implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键ID
	 */
	@TableId(type = IdType.ASSIGN_ID)
	@ExcelProperty("ID")
	@Schema(description = "主键ID")
	private String id;

	/**
	 * 申请编号
	 */
	@ExcelProperty("申请编号")
	@Schema(description = "申请编号")
	private String applyNo;

	/**
	 * 档案-省
	 */
	@ExcelProperty("档案-省")
	@Schema(description = "档案-省", name = "fileProvince")
	private Integer fileProvince;

	/**
	 * 档案-市
	 */
	@ExcelProperty("档案-市")
	@Schema(description = "档案-市", name = "fileCity")
	private Integer fileCity;

	/**
	 * 档案-县
	 */
	@ExcelProperty("档案-县")
	@Schema(description = "档案-县", name = "fileTown")
	private Integer fileTown;

	/**
	 * 合同类型
	 */
	@ExcelProperty("合同类型")
	@Schema(description = "合同类型", name = "contractName")
	private String contractName;

	/**
	 * 签订类型
	 */
	@ExcelProperty("签订类型")
	@Schema(description = "签订类型", name = "signType")
	private String signType;

	/**
	 * 签订期限
	 */
	@ExcelProperty("签订期限")
	@Schema(description = "签订期限", name = "contractType")
	private String contractType;

	/**
	 * 合同起始时间
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelProperty("合同起始日期")
	@Schema(description = "合同起始时间", name = "contractStart")
	private Date contractStart;

	/**
	 * 合同到期时间
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelProperty("合同截止日期")
	@Schema(description = "合同到期时间", name = "contractEnd")
	private Date contractEnd;

	/**
	 * 审核状态（0：待提交；1：待审核；2审核通过；3审核不通过；4签署中；5撤销签署；6签署失败）
	 */
	@ExcelProperty("审核状态")
	@Schema(description = "审核状态（0：待提交；1：待审核；2审核通过；3审核不通过；4签署中；5撤销签署；6签署失败）")
	private String auditStatus;

	/**
	 * 入职确认信息主表id
	 */
	@ExcelProperty("入职确认信息主表id")
	@Schema(description = "入职确认信息主表id")
	private String registerId;
}
