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

import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.media.Schema;

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

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

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

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

    @Schema(description = "sku库存信息")
    private List<StockPointSkuDTO> stockPointList;

    @Schema(description = "多个销售属性值id逗号分隔")
    private String attrs;

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


    @Schema(description = "商品名称")
    private String spuName;

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

    @Schema(description = "商品主图片")
    private String spuMainImgUrl;

    @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 changeStock;

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

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

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

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

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

    @Schema(description = "规格列表")
    private List<SpuSkuAttrValueDTO> spuSkuAttrValues;

    @Schema(description = "sku的组合商品规格列表")
    private List<SkuComboDTO> skuComboList;

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

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

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

    @Hidden
    @Schema(description = "skuId集合")
    private List<Long> skuIds;

    @Hidden
    @Schema(description = "商品编码集合")
    private List<String> partyCodes;

    @Hidden
    @Schema(description = "供应商skuId集合")
    private List<Long> supplierSkuIds;

    @Hidden
    @Schema(description = "店铺id")
    private Long shopId;

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

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

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

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

    public Integer getSupplierSkuStatus() {
        return supplierSkuStatus;
    }

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

    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 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 List<SkuLangDTO> getSkuLangList() {
        return skuLangList;
    }

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

    public Double getWeight() {
        return weight;
    }

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

    public Double getVolume() {
        return volume;
    }

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

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

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

    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 Integer getStock() {
        return stock;
    }

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

    public Integer getChangeStock() {
        return changeStock;
    }

    public void setChangeStock(Integer changeStock) {
        this.changeStock = changeStock;
    }

    public Long getSkuId() {
        return skuId;
    }

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

    public Long getSpuId() {
        return spuId;
    }

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

    public String getAttrs() {
        return attrs;
    }

    public void setAttrs(String attrs) {
        this.attrs = attrs;
    }

    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 getSpuName() {
        return spuName;
    }

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

    public String getSpuMainImgUrl() {
        return spuMainImgUrl;
    }

    public void setSpuMainImgUrl(String spuMainImgUrl) {
        this.spuMainImgUrl = spuMainImgUrl;
    }

    public List<Long> getSkuIds() {
        return skuIds;
    }

    public void setSkuIds(List<Long> skuIds) {
        this.skuIds = skuIds;
    }

    public List<String> getPartyCodes() {
        return partyCodes;
    }

    public void setPartyCodes(List<String> partyCodes) {
        this.partyCodes = partyCodes;
    }

    public List<Long> getSupplierSkuIds() {
        return supplierSkuIds;
    }

    public void setSupplierSkuIds(List<Long> supplierSkuIds) {
        this.supplierSkuIds = supplierSkuIds;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    @Override
    public String toString() {
        return "SkuDTO{" +
                "skuId=" + skuId +
                ", spuId=" + spuId +
                ", skuLangList=" + skuLangList +
                ", stockPointList=" + stockPointList +
                ", attrs='" + attrs + '\'' +
                ", skuName='" + skuName + '\'' +
                ", spuName='" + spuName + '\'' +
                ", imgUrl='" + imgUrl + '\'' +
                ", spuMainImgUrl='" + spuMainImgUrl + '\'' +
                ", priceFee=" + priceFee +
                ", marketPriceFee=" + marketPriceFee +
                ", status=" + status +
                ", stock=" + stock +
                ", changeStock=" + changeStock +
                ", scoreFee=" + scoreFee +
                ", partyCode='" + partyCode + '\'' +
                ", modelId='" + modelId + '\'' +
                ", weight=" + weight +
                ", volume=" + volume +
                ", spuSkuAttrValues=" + spuSkuAttrValues +
                ", skuComboList=" + skuComboList +
                ", supplierSkuId=" + supplierSkuId +
                ", stockWarning=" + stockWarning +
                ", supplierSkuStatus=" + supplierSkuStatus +
                ", skuIds=" + skuIds +
                ", partyCodes=" + partyCodes +
                ", supplierSkuIds=" + supplierSkuIds +
                ", shopId=" + shopId +
                '}';
    }
}
