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 = "申请人")
	private String applicantName;

	/**
	 * 申请时间
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelProperty("申请时间")
	@Schema(description = "申请时间")
	private Date applyTime;

	/**
	 * 档案所在地
	 */
	@ExcelProperty("档案所在地")
	@Schema(description = "档案所在地")
	private String fileLocation;

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

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

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

	/**
	 * 合同起始日期
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
	@ExcelProperty("合同起始日期")
	@Schema(description = "合同起始日期")
	private Date contractStartDate;

	/**
	 * 合同截止日期
	 */
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
	@ExcelProperty("合同截止日期")
	@Schema(description = "合同截止日期")
	private Date contractEndDate;

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

	/**
	 * 合同状态
	 */
	@ExcelProperty("合同状态")
	@Schema(description = "合同状态")
	private String contractStatus;

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