
package com.tmerclub.cloud.order.dto;

import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;

import java.io.Serial;
import java.io.Serializable;

/**
 * 采购商品DTO
 *
 * @author lhd
 * @date 2022-06-22 17:12:02
 */
public class PurchaseOrderItemDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "id")
    private Long purchaseItemId;

    @Schema(description = "供应商品id")
    private Long supplierSpuId;

    @Schema(description = "商品id")
    private Long spuId;

    @Schema(description = "sku id")
    private Long skuId;

    @Schema(description = "供应商Id")
    @NotNull(message = "供应商Id不能为空")
    private Long supplierId;

    @Schema(description = "采购金额")
    private Long purchaseAmount;

    @Schema(description = "采购价")
    private Long purchasePrice;

    @Schema(description = "采购库存数量")
    private Integer purchaseStock;

    @Schema(description = "实际库存数量")
    private Integer actualStock;

    @Schema(description = "状态 0:已作废 1:待入库 2:已发货 3.部分入库 5:已完成")
    private Integer status;

    @Schema(description = "供应商skuId")
    private Long supplierSkuId;

    @Hidden
    @Schema(description = "入库数量")
    private Integer inboundStock;

    public Long getPurchaseItemId() {
        return purchaseItemId;
    }

    public void setPurchaseItemId(Long purchaseItemId) {
        this.purchaseItemId = purchaseItemId;
    }

    public Long getSupplierSpuId() {
        return supplierSpuId;
    }

    public void setSupplierSpuId(Long supplierSpuId) {
        this.supplierSpuId = supplierSpuId;
    }

    public Long getSpuId() {
        return spuId;
    }

    public void setSpuId(Long spuId) {
        this.spuId = spuId;
    }

    public Long getSkuId() {
        return skuId;
    }

    public void setSkuId(Long skuId) {
        this.skuId = skuId;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public Long getPurchaseAmount() {
        return purchaseAmount;
    }

    public void setPurchaseAmount(Long purchaseAmount) {
        this.purchaseAmount = purchaseAmount;
    }

    public Long getPurchasePrice() {
        return purchasePrice;
    }

    public void setPurchasePrice(Long purchasePrice) {
        this.purchasePrice = purchasePrice;
    }

    public Integer getPurchaseStock() {
        return purchaseStock;
    }

    public void setPurchaseStock(Integer purchaseStock) {
        this.purchaseStock = purchaseStock;
    }

    public Integer getActualStock() {
        return actualStock;
    }

    public void setActualStock(Integer actualStock) {
        this.actualStock = actualStock;
    }

    public Integer getStatus() {
        return status;
    }

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

    public Long getSupplierSkuId() {
        return supplierSkuId;
    }

    public void setSupplierSkuId(Long supplierSkuId) {
        this.supplierSkuId = supplierSkuId;
    }

    public Integer getInboundStock() {
        return inboundStock;
    }

    public void setInboundStock(Integer inboundStock) {
        this.inboundStock = inboundStock;
    }

    @Override
    public String toString() {
        return "PurchaseOrderItemDTO{" +
                "purchaseItemId=" + purchaseItemId +
                ", supplierSpuId=" + supplierSpuId +
                ", spuId=" + spuId +
                ", skuId=" + skuId +
                ", supplierId=" + supplierId +
                ", purchaseAmount=" + purchaseAmount +
                ", purchasePrice=" + purchasePrice +
                ", purchaseStock=" + purchaseStock +
                ", actualStock=" + actualStock +
                ", status=" + status +
                ", supplierSkuId=" + supplierSkuId +
                ", inboundStock=" + inboundStock +
                '}';
    }
}
