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

import com.tmerclub.cloud.common.product.bo.EsBrandBO;
import com.tmerclub.cloud.common.product.vo.SkuVO;
import com.tmerclub.cloud.common.product.vo.SpuVO;
import io.swagger.v3.oas.annotations.media.Schema;

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

/**
 * @author YXF
 * @date 2021/03/16
 */
public class SpuAdminVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "商品id")
    private Long spuId;

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

    @Schema(description = "卖点" )
    private String sellingPoint;

    @Schema(description = "商品介绍主图")
    private String mainImgUrl;

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

    @Schema(description = "店铺名称")
    private String shopName;

    @Schema(description = "商品类型(0普通商品 1拼团 2秒杀 3积分)")
    private Integer spuType;

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

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

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

    @Schema(description = "实际销量")
    private Integer actualSoldNum;

    @Schema(description = "注水销量")
    private Integer waterSoldNum;

    @Schema(description = "状态 -1:删除, 0:下架, 1:上架, 2:平台下架, 3: 等待审核")
    private Integer spuStatus;

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

    @Schema(description = "序号")
    private Integer seq;

    @Schema(description = "是否置顶")
    private Integer isTop;

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

    @Schema(description = "分销信息")
    private DistributionInfoVO distributionInfo;

    @Schema(description = "分组")
    private List<SearchSpuTagVO> tags;

    @Schema(description = "平台分类")
    private String platformCategory;

    @Schema(description = "品牌名称")
    private String brandName;

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

    @Schema(description = "是否已导入供应商商品 0 未导入  1 已导入")
    private Integer isCommission;

    @Schema(description = "供应商名称")
    private String supplierName;

    @Schema(description = "代销商品规格选择状态，1: 全选 2：部分选择")
    private Integer skuChoiceStatus;

    @Schema(description = "代销商品状态 1:上架 2:部分上架 3:下架 4:部分下架 ")
    private Integer commissionSpuStatus;

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

    @Schema(description = "平台分类名称")
    private String categoryNames;

    @Schema(description = "供应商商品id，只有供应商商品类型为2时才会有")
    private Long supplierSpuId;

    @Schema(description = "SKU列表")
    private List<SkuVO> skuList;

    @Schema(description = "导入的商品是否已上架了，1:上架了,0:未上架")
    private Integer isPut;

    @Schema(description = "代销商品id")
    private Long commissionSpuId;

    @Schema(description = "品牌信息")
    private EsBrandBO brand;

    @Schema(description = "品牌名称")
    private EsBrandBO brandNameZh;

    @Schema(description = "供应商商品类型 0.否 1.是 2.商家代销")
    private Integer supplierSpuType;

    @Schema(description = "发货方式 1.供应商发货 2.仓库发货")
    private Integer supplierDeliveryType;

    @Schema(description = "代销商品上架是否提示 请完善该商品信息 1 是，0 否")
    private Integer perfect;

    @Schema(description = "供应商商品更新后代销商品是否已同步更新 1:已更新 -1:未更新")
    private Integer isSynUpdate;

    @Schema(description = "商家代销设置类型,0智能设价,1手动设价")
    private Integer salesType;

    @Schema(description = "商家二级分类id")
    private Long secondaryCategoryId;

    @Schema(description = "商品分类id")
    private Long shopCategoryId;

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

    @Schema(description = "SPU编码")
    private String spuCode;

    @Schema(description = "SKU编码")
    private String skuCode;

    @Schema(description = "平台一级分类id")
    private Long primaryCategoryId;

    @Schema(description = "物流信息")
    private SpuVO.DeliveryModeVO deliveryMode;

    public SpuVO.DeliveryModeVO getDeliveryMode() {
        return deliveryMode;
    }

    public void setDeliveryMode(SpuVO.DeliveryModeVO deliveryMode) {
        this.deliveryMode = deliveryMode;
    }

    public String getSellingPoint() {
        return sellingPoint;
    }

    public void setSellingPoint(String sellingPoint) {
        this.sellingPoint = sellingPoint;
    }

    public Long getCategoryId() {
        return categoryId;
    }

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

    public Long getShopCategoryId() {
        return shopCategoryId;
    }

    public void setShopCategoryId(Long shopCategoryId) {
        this.shopCategoryId = shopCategoryId;
    }

    public Long getSecondaryCategoryId() {
        return secondaryCategoryId;
    }

    public void setSecondaryCategoryId(Long shopSecondaryCategoryId) {
        this.secondaryCategoryId = shopSecondaryCategoryId;
    }

    public Integer getSalesType() {
        return salesType;
    }

    public void setSalesType(Integer salesType) {
        this.salesType = salesType;
    }

    public Integer getIsSynUpdate() {
        return isSynUpdate;
    }

    public void setIsSynUpdate(Integer isSynUpdate) {
        this.isSynUpdate = isSynUpdate;
    }

    public Integer getPerfect() {
        return perfect;
    }

    public void setPerfect(Integer perfect) {
        this.perfect = perfect;
    }

    public Integer getSupplierDeliveryType() {
        return supplierDeliveryType;
    }

    public void setSupplierDeliveryType(Integer supplierDeliveryType) {
        this.supplierDeliveryType = supplierDeliveryType;
    }

    public Integer getSupplierSpuType() {
        return supplierSpuType;
    }

    public void setSupplierSpuType(Integer supplierSpuType) {
        this.supplierSpuType = supplierSpuType;
    }

    public EsBrandBO getBrand() {
        return brand;
    }

    public void setBrand(EsBrandBO brand) {
        this.brand = brand;
    }

    public Long getCommissionSpuId() {
        return commissionSpuId;
    }

    public void setCommissionSpuId(Long commissionSpuId) {
        this.commissionSpuId = commissionSpuId;
    }

    public Integer getIsPut() {
        return isPut;
    }

    public void setIsPut(Integer isPut) {
        this.isPut = isPut;
    }

    public List<SkuVO> getSkuList() {
        return skuList;
    }

    public void setSkuList(List<SkuVO> skuList) {
        this.skuList = skuList;
    }

    public Long getSupplierSpuId() {
        return supplierSpuId;
    }

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

    public Integer getCommissionSpuStatus() {
        return commissionSpuStatus;
    }

    public void setCommissionSpuStatus(Integer commissionSpuStatus) {
        this.commissionSpuStatus = commissionSpuStatus;
    }

    public String getCategoryNames() {
        return categoryNames;
    }

    public void setCategoryNames(String categoryNames) {
        this.categoryNames = categoryNames;
    }

    public Long getSupplierId() {
        return supplierId;
    }

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


    public Integer getSkuChoiceStatus() {
        return skuChoiceStatus;
    }

    public void setSkuChoiceStatus(Integer skuChoiceStatus) {
        this.skuChoiceStatus = skuChoiceStatus;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public Integer getIsCommission() {
        return isCommission;
    }

    public void setIsCommission(Integer isCommission) {
        this.isCommission = isCommission;
    }

    public Long getSupplyPriceFee() {
        return supplyPriceFee;
    }

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

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getPlatformCategory() {
        return platformCategory;
    }

    public void setPlatformCategory(String platformCategory) {
        this.platformCategory = platformCategory;
    }

    public String getSpuCode() {
        return spuCode;
    }

    public void setSpuCode(String spuCode) {
        this.spuCode = spuCode;
    }

    public String getSkuCode() {
        return skuCode;
    }

    public void setSkuCode(String skuCode) {
        this.skuCode = skuCode;
    }

    public DistributionInfoVO getDistributionInfo() {
        return distributionInfo;
    }

    public void setDistributionInfo(DistributionInfoVO distributionInfo) {
        this.distributionInfo = distributionInfo;
    }

    public Integer getActualSoldNum() {
        return actualSoldNum;
    }

    public void setActualSoldNum(Integer actualSoldNum) {
        this.actualSoldNum = actualSoldNum;
    }

    public Integer getWaterSoldNum() {
        return waterSoldNum;
    }

    public void setWaterSoldNum(Integer waterSoldNum) {
        this.waterSoldNum = waterSoldNum;
    }

    public Integer getIsTop() {
        return isTop;
    }

    public void setIsTop(Integer isTop) {
        this.isTop = isTop;
    }

    public Long getSpuId() {
        return spuId;
    }

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

    public String getSpuName() {
        return spuName;
    }

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

    public String getMainImgUrl() {
        return mainImgUrl;
    }

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

    public Long getShopId() {
        return shopId;
    }

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

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Integer getSpuType() {
        return spuType;
    }

    public void setSpuType(Integer spuType) {
        this.spuType = spuType;
    }

    public Integer getSpuMold() {
        return spuMold;
    }

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

    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 getSaleNum() {
        return saleNum;
    }

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

    public Integer getSpuStatus() {
        return spuStatus;
    }

    public void setSpuStatus(Integer spuStatus) {
        this.spuStatus = spuStatus;
    }

    public Integer getStock() {
        return stock;
    }

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

    public Integer getSeq() {
        return seq;
    }

    public void setSeq(Integer seq) {
        this.seq = seq;
    }

    public Long getScoreFee() {
        return scoreFee;
    }

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

    public List<SearchSpuTagVO> getTags() {
        return tags;
    }

    public void setTags(List<SearchSpuTagVO> tags) {
        this.tags = tags;
    }

    public EsBrandBO getBrandNameZh() {
        return brandNameZh;
    }

    public void setBrandNameZh(EsBrandBO brandNameZh) {
        this.brandNameZh = brandNameZh;
    }

    public Long getPrimaryCategoryId() {
        return primaryCategoryId;
    }

    public void setPrimaryCategoryId(Long primaryCategoryId) {
        this.primaryCategoryId = primaryCategoryId;
    }

    @Override
    public String toString() {
        return "SpuAdminVO{" +
                "spuId=" + spuId +
                ", spuName='" + spuName + '\'' +
                ", sellingPoint='" + sellingPoint + '\'' +
                ", mainImgUrl='" + mainImgUrl + '\'' +
                ", shopId=" + shopId +
                ", shopName='" + shopName + '\'' +
                ", spuType=" + spuType +
                ", spuMold=" + spuMold +
                ", priceFee=" + priceFee +
                ", marketPriceFee=" + marketPriceFee +
                ", saleNum=" + saleNum +
                ", actualSoldNum=" + actualSoldNum +
                ", waterSoldNum=" + waterSoldNum +
                ", spuStatus=" + spuStatus +
                ", stock=" + stock +
                ", seq=" + seq +
                ", isTop=" + isTop +
                ", scoreFee=" + scoreFee +
                ", distributionInfo=" + distributionInfo +
                ", tags=" + tags +
                ", platformCategory='" + platformCategory + '\'' +
                ", brandName='" + brandName + '\'' +
                ", supplyPriceFee=" + supplyPriceFee +
                ", isCommission=" + isCommission +
                ", supplierName='" + supplierName + '\'' +
                ", skuChoiceStatus=" + skuChoiceStatus +
                ", commissionSpuStatus=" + commissionSpuStatus +
                ", supplierId=" + supplierId +
                ", categoryNames='" + categoryNames + '\'' +
                ", supplierSpuId=" + supplierSpuId +
                ", skuList=" + skuList +
                ", isPut=" + isPut +
                ", commissionSpuId=" + commissionSpuId +
                ", brand=" + brand +
                ", brandNameZh=" + brandNameZh +
                ", supplierSpuType=" + supplierSpuType +
                ", supplierDeliveryType=" + supplierDeliveryType +
                ", perfect=" + perfect +
                ", isSynUpdate=" + isSynUpdate +
                ", salesType=" + salesType +
                ", secondaryCategoryId=" + secondaryCategoryId +
                ", shopCategoryId=" + shopCategoryId +
                ", categoryId=" + categoryId +
                ", spuCode='" + spuCode + '\'' +
                ", skuCode='" + skuCode + '\'' +
                ", primaryCategoryId=" + primaryCategoryId +
                ", deliveryMode=" + deliveryMode +
                '}';
    }
}
