
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;

/**
 * DTO
 *
 * @author tmerclub
 * @date 2023-11-09 18:00:43
 */
public class StockPointSkuDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "库存商品关联skuid")
    private Long stockPointSkuId;

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

    @Schema(description = "库存点类型 1仓库 2门店 ")
    private Integer stockPointType;

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

    @Schema(description = "skuid")
    private Long skuId;

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

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

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

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

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

    @Schema(description = "分类id")
    private Long categoryId;

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

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

    @Schema(description = "仓库类型(0默认仓库，1区域仓库)")
    private Integer type;

    @Schema(description = "入库仓库id")
    private Long inStockPointId;

    @Schema(description = "库存模式")
    private Integer stockMode;

    @Schema(description = "更新时，变化的库存")
    private Integer changeStock;

    @Hidden
    @Schema(description = "库存点id集合")
    private List<Long> stockPointIds;

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

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

    @Hidden
    @Schema(description = "不包含skuId集合的集合")
    private List<Long> notInSkuIds;

    @Hidden
    @Schema(description = "分类id集合")
    private List<Long> categoryIds;

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

    public StockPointSkuDTO(){
    }

    public StockPointSkuDTO(Long stockPointId, Integer stockPointType, Long spuId, Long skuId, Integer status, Integer type, Integer stockMode) {
        this.stockPointId = stockPointId;
        this.stockPointType = stockPointType;
        this.spuId = spuId;
        this.skuId = skuId;
        this.status = status;
        this.type = type;
        this.stockMode = stockMode;
    }

    public Integer getChangeStock() {
        return changeStock;
    }

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

    public Integer getStockMode() {
        return stockMode;
    }

    public void setStockMode(Integer stockMode) {
        this.stockMode = stockMode;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getStock() {
        return stock;
    }

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

    public Long getShopId() {
        return shopId;
    }

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

    public Long getSupplierId() {
        return supplierId;
    }

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

    public String getSpuName() {
        return spuName;
    }

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

    public Long getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public Long getSpuId() {
        return spuId;
    }

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

    public Long getStockPointSkuId() {
        return stockPointSkuId;
    }

    public void setStockPointSkuId(Long stockPointSkuId) {
        this.stockPointSkuId = stockPointSkuId;
    }

    public Long getStockPointId() {
        return stockPointId;
    }

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

    public Integer getStockPointType() {
        return stockPointType;
    }

    public void setStockPointType(Integer stockPointType) {
        this.stockPointType = stockPointType;
    }

    public Long getSkuId() {
        return skuId;
    }

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

    public String getPartyCode() {
        return partyCode;
    }

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

    public Long getSupplierSkuId() {
        return supplierSkuId;
    }

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

    public Integer getStatus() {
        return status;
    }

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

    public Long getInStockPointId() {
        return inStockPointId;
    }

    public void setInStockPointId(Long inStockPointId) {
        this.inStockPointId = inStockPointId;
    }

    public List<Long> getStockPointIds() {
        return stockPointIds;
    }

    public void setStockPointIds(List<Long> stockPointIds) {
        this.stockPointIds = stockPointIds;
    }

    public List<Long> getSpuIds() {
        return spuIds;
    }

    public void setSpuIds(List<Long> spuIds) {
        this.spuIds = spuIds;
    }

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

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

    public Integer getSpuMold() {
        return spuMold;
    }

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

    public List<Long> getNotInSkuIds() {
        return notInSkuIds;
    }

    public void setNotInSkuIds(List<Long> notInSkuIds) {
        this.notInSkuIds = notInSkuIds;
    }

    public List<Long> getCategoryIds() {
        return categoryIds;
    }

    public void setCategoryIds(List<Long> categoryIds) {
        this.categoryIds = categoryIds;
    }

    @Override
    public String toString() {
        return "StockPointSkuDTO{" +
                "stockPointSkuId=" + stockPointSkuId +
                ", stockPointId=" + stockPointId +
                ", stockPointType=" + stockPointType +
                ", spuId=" + spuId +
                ", skuId=" + skuId +
                ", partyCode='" + partyCode + '\'' +
                ", supplierSkuId=" + supplierSkuId +
                ", status=" + status +
                ", stock=" + stock +
                ", spuName='" + spuName + '\'' +
                ", categoryId=" + categoryId +
                ", shopId=" + shopId +
                ", supplierId=" + supplierId +
                ", type=" + type +
                ", inStockPointId=" + inStockPointId +
                ", stockMode=" + stockMode +
                ", changeStock=" + changeStock +
                ", stockPointIds=" + stockPointIds +
                ", spuIds=" + spuIds +
                ", skuIds=" + skuIds +
                ", notInSkuIds=" + notInSkuIds +
                ", categoryIds=" + categoryIds +
                ", spuMold=" + spuMold +
                '}';
    }
}
