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

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

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单办结（完税/开票）响应。
 */
@Schema(description = "订单办结响应")
public class OrderCompleteResponse {

    @JsonProperty("order_id")
    private Long orderId;

    @JsonProperty("order_no")
    private String orderNo;

    @JsonProperty("current_step_code")
    private String currentStepCode;

    @JsonProperty("order_status")
    private String orderStatus;

    @JsonProperty("settlement_id")
    private Long settlementId;

    @JsonProperty("settlement_no")
    private String settlementNo;

    @JsonProperty("invoice_amount")
    private BigDecimal invoiceAmount;

    @JsonProperty("tax_cleared")
    private Boolean taxCleared;

    @JsonProperty("invoice_issued")
    private Boolean invoiceIssued;

    @JsonProperty("invoice_no")
    private String invoiceNo;

    @JsonProperty("tax_voucher_no")
    private String taxVoucherNo;

    private String message;

    @JsonProperty("completed_at")
    private LocalDateTime completedAt;

    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 String getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Long getSettlementId() {
        return settlementId;
    }

    public void setSettlementId(Long settlementId) {
        this.settlementId = settlementId;
    }

    public String getSettlementNo() {
        return settlementNo;
    }

    public void setSettlementNo(String settlementNo) {
        this.settlementNo = settlementNo;
    }

    public BigDecimal getInvoiceAmount() {
        return invoiceAmount;
    }

    public void setInvoiceAmount(BigDecimal invoiceAmount) {
        this.invoiceAmount = invoiceAmount;
    }

    public Boolean getTaxCleared() {
        return taxCleared;
    }

    public void setTaxCleared(Boolean taxCleared) {
        this.taxCleared = taxCleared;
    }

    public Boolean getInvoiceIssued() {
        return invoiceIssued;
    }

    public void setInvoiceIssued(Boolean invoiceIssued) {
        this.invoiceIssued = invoiceIssued;
    }

    public String getInvoiceNo() {
        return invoiceNo;
    }

    public void setInvoiceNo(String invoiceNo) {
        this.invoiceNo = invoiceNo;
    }

    public String getTaxVoucherNo() {
        return taxVoucherNo;
    }

    public void setTaxVoucherNo(String taxVoucherNo) {
        this.taxVoucherNo = taxVoucherNo;
    }

    public String getMessage() {
        return message;
    }

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

    public LocalDateTime getCompletedAt() {
        return completedAt;
    }

    public void setCompletedAt(LocalDateTime completedAt) {
        this.completedAt = completedAt;
    }
}
