package com.huimv.employment.service.registration.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;

@Schema(description = "企业审核用工登记响应")
public class WorkerRegistrationReviewResponse {

    @Schema(description = "处理结果", example = "approved")
    private String status;

    @JsonProperty("registration_id")
    @Schema(description = "批次登记记录 ID")
    private Long registrationId;

    @JsonProperty("batch_no")
    @Schema(description = "登记批次编号")
    private String batchNo;

    @JsonProperty("order_no")
    @Schema(description = "订单编号")
    private String orderNo;

    @JsonProperty("reg_status")
    @Schema(description = "登记状态", example = "contract_signing")
    private String regStatus;

    @JsonProperty("fail_reason")
    @Schema(description = "驳回原因（仅拒绝时有值）")
    private String failReason;

    @JsonProperty("current_step_code")
    @Schema(description = "订单当前办理步骤")
    private String currentStepCode;

    @JsonProperty("contract_id")
    @Schema(description = "待签合同 ID")
    private Long contractId;

    @JsonProperty("contract_no")
    @Schema(description = "合同编号")
    private String contractNo;

    @JsonProperty("contract_type")
    @Schema(description = "合同模板类型")
    private String contractType;

    @JsonProperty("sign_status")
    @Schema(description = "签署状态", example = "pending")
    private String signStatus;

    @JsonProperty("sign_url")
    @Schema(description = "签署链接")
    private String signUrl;

    @JsonProperty("contract_create_failed")
    @Schema(description = "待签合同生成是否失败（可重新生成）")
    private Boolean contractCreateFailed;

    @Schema(description = "提示文案")
    private String message;

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Long getRegistrationId() {
        return registrationId;
    }

    public void setRegistrationId(Long registrationId) {
        this.registrationId = registrationId;
    }

    public String getBatchNo() {
        return batchNo;
    }

    public void setBatchNo(String batchNo) {
        this.batchNo = batchNo;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getRegStatus() {
        return regStatus;
    }

    public void setRegStatus(String regStatus) {
        this.regStatus = regStatus;
    }

    public String getFailReason() {
        return failReason;
    }

    public void setFailReason(String failReason) {
        this.failReason = failReason;
    }

    public String getCurrentStepCode() {
        return currentStepCode;
    }

    public void setCurrentStepCode(String currentStepCode) {
        this.currentStepCode = currentStepCode;
    }

    public Long getContractId() {
        return contractId;
    }

    public void setContractId(Long contractId) {
        this.contractId = contractId;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public String getContractType() {
        return contractType;
    }

    public void setContractType(String contractType) {
        this.contractType = contractType;
    }

    public String getSignStatus() {
        return signStatus;
    }

    public void setSignStatus(String signStatus) {
        this.signStatus = signStatus;
    }

    public String getSignUrl() {
        return signUrl;
    }

    public void setSignUrl(String signUrl) {
        this.signUrl = signUrl;
    }

    public Boolean getContractCreateFailed() {
        return contractCreateFailed;
    }

    public void setContractCreateFailed(Boolean contractCreateFailed) {
        this.contractCreateFailed = contractCreateFailed;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
