
package com.tmerclub.cloud.common.product.vo;

import com.tmerclub.cloud.common.vo.BaseVO;
import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * sku信息VO
 *
 * @author tmerclub
 * @date 2020-10-28 15:27:24
 */
public class SkuVO extends BaseVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "属性id")
    private Long skuId;

    @Schema(description = "旧id")
    private Long oldSkuId;

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

    @Schema(description = "spu名称")
    private String spuName;
    @Schema(description = "sku名称")
    private String skuName;

    @Schema(description = "sku国际化信息")
    private List<SkuLangVO> skuLangList;

    @Schema(description = "主图：sku有图片使用sku图片，否则使用商品主图")
    private String mainImgUrl;

    @Schema(description = "sku图片")
    private String imgUrl;

    @Schema(description = "售价，整数方式保存")
    private Long priceFee;

    @Schema(description = "市场价，整数方式保存")
    private Long marketPriceFee;

    @Schema(description = "状态 1:enable, 0:disable, -1:deleted")
    private Integer status;

    @Schema(description = "库存")
    private Integer stock;

    @Schema(description = "供应商品库存")
    private Integer supplierStock;

    @Schema(description = "商品销量")
    private Integer saleNum;

    @Schema(description = "积分价格")
    private Long scoreFee;

    @Schema(description = "商品编码")
    private String partyCode;

    @Schema(description = "商品条形码")
    private String modelId;

    @Schema(description = "商品重量")
    private BigDecimal weight;

    @Schema(description = "商品体积")
    private BigDecimal volume;

    @Schema(description = "当前sku规格列表")
    private List<SpuSkuAttrValueVO> spuSkuAttrValues;

    @Schema(description = "供应商商品sku编码")
    private String supplierSkuCode;

    @Schema(description = "当前供应商品sku是否可卖 0不可售，1可售")
    private Integer isSell;

    @Schema(description = "供货价")
    private Long supplyPriceFee;

    @Schema(description = "当商品为代销商品时，供应商商品skuid")
    private Long supplierSkuId;

    @Schema(description = "库存预警数量")
    private Long stockWarning;

    @Schema(description = "供应商sku状态")
    private Integer supplierSkuStatus;

    @Schema(description = "商品类别 0.实物商品 1. 虚拟商品 2.组合商品")
    private Integer spuMold;

    @Schema(description = "当前sku组合的sku列表")
    private List<SkuComboVO> skuComboList;

    @Schema(description = "库存点id")
    private Long stockPointId;

    @Schema(description = "库存关联列表")
    private List<StockPointSkuVO> stockPointList;

    @Schema(description = "入库库存点商品库存")
    private Integer inStockPointStock;

    public Integer getSpuMold() {
        return spuMold;
    }

    public void setSpuMold(Integer spuMold) {
        this.spuMold = spuMold;
    }

    public List<StockPointSkuVO> getStockPointList() {
        return stockPointList;
    }

    public void setStockPointList(List<StockPointSkuVO> stockPointList) {
        this.stockPointList = stockPointList;
    }

    public List<SkuComboVO> getSkuComboList() {
        return skuComboList;
    }

    public void setSkuComboList(List<SkuComboVO> skuComboList) {
        this.skuComboList = skuComboList;
    }

    public String getSpuName() {
        return spuName;
    }

    public void setSpuName(String spuName) {
        this.spuName = spuName;
    }

    public Integer getSupplierSkuStatus() {
        return supplierSkuStatus;
    }

    public void setSupplierSkuStatus(Integer supplierSkuStatus) {
        this.supplierSkuStatus = supplierSkuStatus;
    }

    public Integer getSupplierStock() {
        return supplierStock;
    }

    public void setSupplierStock(Integer supplierStock) {
        this.supplierStock = supplierStock;
    }

    public Long getStockWarning() {
        return stockWarning;
    }

    public void setStockWarning(Long stockWarning) {
        this.stockWarning = stockWarning;
    }

    public Long getSupplierSkuId() {
        return supplierSkuId;
    }

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

    public Long getOldSkuId() {
        return oldSkuId;
    }

    public void setOldSkuId(Long oldSkuId) {
        this.oldSkuId = oldSkuId;
    }

    public String getSupplierSkuCode() {
        return supplierSkuCode;
    }

    public void setSupplierSkuCode(String supplierSkuCode) {
        this.supplierSkuCode = supplierSkuCode;
    }

    public Integer getIsSell() {
        return isSell;
    }

    public void setIsSell(Integer isSell) {
        this.isSell = isSell;
    }

    public Long getSupplyPriceFee() {
        return supplyPriceFee;
    }

    public void setSupplyPriceFee(Long supplyPriceFee) {
        this.supplyPriceFee = supplyPriceFee;
    }

    public Long getScoreFee() {
        return scoreFee;
    }

    public void setScoreFee(Long scoreFee) {
        this.scoreFee = scoreFee;
    }

    public String getPartyCode() {
        return partyCode;
    }

    public void setPartyCode(String partyCode) {
        this.partyCode = partyCode;
    }

    public String getModelId() {
        return modelId;
    }

    public void setModelId(String modelId) {
        this.modelId = modelId;
    }

    public BigDecimal getWeight() {
        return weight;
    }

    public void setWeight(BigDecimal weight) {
        this.weight = weight;
    }

    public BigDecimal getVolume() {
        return volume;
    }

    public void setVolume(BigDecimal volume) {
        this.volume = volume;
    }

    public List<SpuSkuAttrValueVO> getSpuSkuAttrValues() {
        return spuSkuAttrValues;
    }

    public void setSpuSkuAttrValues(List<SpuSkuAttrValueVO> spuSkuAttrValues) {
        this.spuSkuAttrValues = spuSkuAttrValues;
    }

    public Integer getStock() {
        return stock;
    }

    public void setStock(Integer stock) {
        this.stock = stock;
    }

    public Long getSkuId() {
        return skuId;
    }

    public Long getPriceFee() {
        return priceFee;
    }

    public void setPriceFee(Long priceFee) {
        this.priceFee = priceFee;
    }

    public Long getMarketPriceFee() {
        return marketPriceFee;
    }

    public void setMarketPriceFee(Long marketPriceFee) {
        this.marketPriceFee = marketPriceFee;
    }

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

    public Long getSpuId() {
        return spuId;
    }

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

    public List<SkuLangVO> getSkuLangList() {
        return skuLangList;
    }

    public void setSkuLangList(List<SkuLangVO> skuLangList) {
        this.skuLangList = skuLangList;
    }

    public String getImgUrl() {
        return imgUrl;
    }

    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl;
    }

    public Integer getStatus() {
        return status;
    }

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

    public String getSkuName() {
        return skuName;
    }

    public void setSkuName(String skuName) {
        this.skuName = skuName;
    }

    public String getMainImgUrl() {
        return mainImgUrl;
    }

    public void setMainImgUrl(String mainImgUrl) {
        this.mainImgUrl = mainImgUrl;
    }

    public Integer getSaleNum() {
        return saleNum;
    }

    public void setSaleNum(Integer saleNum) {
        this.saleNum = saleNum;
    }

    public Integer getInStockPointStock() {
        return inStockPointStock;
    }

    public void setInStockPointStock(Integer inStockPointStock) {
        this.inStockPointStock = inStockPointStock;
    }

    public Long getStockPointId() {
        return stockPointId;
    }

    public void setStockPointId(Long stockPointId) {
        this.stockPointId = stockPointId;
    }

    @Override
    public String toString() {
        return "SkuVO{" +
                "skuId=" + skuId +
                ", oldSkuId=" + oldSkuId +
                ", spuId=" + spuId +
                ", spuName='" + spuName + '\'' +
                ", skuName='" + skuName + '\'' +
                ", skuLangList=" + skuLangList +
                ", mainImgUrl='" + mainImgUrl + '\'' +
                ", imgUrl='" + imgUrl + '\'' +
                ", priceFee=" + priceFee +
                ", marketPriceFee=" + marketPriceFee +
                ", status=" + status +
                ", stock=" + stock +
                ", supplierStock=" + supplierStock +
                ", saleNum=" + saleNum +
                ", scoreFee=" + scoreFee +
                ", partyCode='" + partyCode + '\'' +
                ", modelId='" + modelId + '\'' +
                ", weight=" + weight +
                ", volume=" + volume +
                ", spuSkuAttrValues=" + spuSkuAttrValues +
                ", supplierSkuCode='" + supplierSkuCode + '\'' +
                ", isSell=" + isSell +
                ", supplyPriceFee=" + supplyPriceFee +
                ", supplierSkuId=" + supplierSkuId +
                ", stockWarning=" + stockWarning +
                ", supplierSkuStatus=" + supplierSkuStatus +
                ", spuMold=" + spuMold +
                ", skuComboList=" + skuComboList +
                ", stockPointId=" + stockPointId +
                ", stockPointList=" + stockPointList +
                ", inStockPointStock=" + inStockPointStock +
                '}';
    }
}
