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

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

@Schema(description = "订单签约/开工就绪状态")
public class OrderStartWorkResponse {

    @JsonProperty("order_id")
    private Long orderId;

    @JsonProperty("order_no")
    private String orderNo;

    @JsonProperty("current_step_code")
    private String currentStepCode;

    @Schema(description = "计划人数")
    @JsonProperty("planned_count")
    private Integer plannedCount;

    @Schema(description = "已过审人数（待签+已签）")
    @JsonProperty("approved_count")
    private Integer approvedCount;

    @Schema(description = "已签署完成人数")
    @JsonProperty("signed_count")
    private Integer signedCount;

    @Schema(description = "已过审但仍待签人数")
    @JsonProperty("pending_sign_count")
    private Integer pendingSignCount;

    @Schema(description = "待企业审核人数（提示用，不挡开工）")
    @JsonProperty("under_review_count")
    private Integer underReviewCount;

    @Schema(description = "已过审工人是否全部签完")
    @JsonProperty("all_approved_signed")
    private Boolean allApprovedSigned;

    @Schema(description = "已签人数是否少于计划人数")
    private Boolean understaffed;

    @Schema(description = "是否可确认开工（齐签且步骤为 contract_signing）")
    @JsonProperty("can_start_work")
    private Boolean canStartWork;

    private String message;

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getOrderNo() {
        return orderNo;
    }

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

    public String getCurrentStepCode() {
        return currentStepCode;
    }

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

    public Integer getPlannedCount() {
        return plannedCount;
    }

    public void setPlannedCount(Integer plannedCount) {
        this.plannedCount = plannedCount;
    }

    public Integer getApprovedCount() {
        return approvedCount;
    }

    public void setApprovedCount(Integer approvedCount) {
        this.approvedCount = approvedCount;
    }

    public Integer getSignedCount() {
        return signedCount;
    }

    public void setSignedCount(Integer signedCount) {
        this.signedCount = signedCount;
    }

    public Integer getPendingSignCount() {
        return pendingSignCount;
    }

    public void setPendingSignCount(Integer pendingSignCount) {
        this.pendingSignCount = pendingSignCount;
    }

    public Integer getUnderReviewCount() {
        return underReviewCount;
    }

    public void setUnderReviewCount(Integer underReviewCount) {
        this.underReviewCount = underReviewCount;
    }

    public Boolean getAllApprovedSigned() {
        return allApprovedSigned;
    }

    public void setAllApprovedSigned(Boolean allApprovedSigned) {
        this.allApprovedSigned = allApprovedSigned;
    }

    public Boolean getUnderstaffed() {
        return understaffed;
    }

    public void setUnderstaffed(Boolean understaffed) {
        this.understaffed = understaffed;
    }

    public Boolean getCanStartWork() {
        return canStartWork;
    }

    public void setCanStartWork(Boolean canStartWork) {
        this.canStartWork = canStartWork;
    }

    public String getMessage() {
        return message;
    }

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