
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.Date;
import java.util.List;

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

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

    @Schema(description = "品牌ID")
    private Long brandId;

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

    @Schema(description = "店铺分类ID")
    private Long shopCategoryId;

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

    @Schema(description = "多语言信息列表")
    private List<SpuLangVO> spuLangList;

    @Schema(description = "spu名称")
    private String name;

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

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

    @Schema(description = "商品介绍主图 多个图片逗号分隔")
    private String imgUrls;

    @Schema(description = "商品视频")
    private String video;

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

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

    @Schema(description = "状态 1:enable, 0:disable, -1:deleted, 2:违规下架 3:等待审核")
    private Integer status;

    @Schema(description = "sku是否含有图片 0无 1有")
    private Integer hasSkuImg;

    @Schema(description = "商品详情")
    private String detail;

    @Schema(description = "商品详情列表")
    private List<SpuDetailVO> detailList;


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

    @Schema(description = "规格属性")
    private List<SpuAttrValueVO> spuAttrValues;
    @Schema(description = "sku列表")
    private List<SkuVO> skus;

    @Schema(description = "配送方式json见TransportModeVO")
    private String deliveryMode;

    @Schema(description = "运费模板id -1固定运费 0包邮")
    private Long deliveryTemplateId;

    @Schema(description = "固定运费金额")
    private Long deliveryAmount;

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

    @Schema(description = "活动id(关联prod_type)")
    private Long activityId;


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

    @Schema(description = "是否可以退款 1.可以 0.不可以")
    private Integer isRefund;

    @Schema(description = "虚拟商品的留言备注")
    private String virtualRemark;
    @Schema(description = "序号")
    private Integer seq;

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

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

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

    @Schema(description = "评论数量")
    private Integer commentNum;

    @Schema(description = "物流信息")
    private DeliveryModeVO deliveryModeVO;

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

    @Schema(description = "分类信息")
    private CategoryVO category;

    @Schema(description = "店铺分类信息")
    private CategoryVO shopCategory;

    @Schema(description = "分组商品关联id")
    private Long referenceId;

    @Schema(description = "积分价格")
    private Long scoreFee;
    @Schema(description = "平台佣金扣率")
    private Double rate;

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

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

    @Schema(description = "关联商品商品id，只有供应商商品为2才有")
    private Long supplierSpuId;

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

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

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

    @Schema(description = "供应商分类ID")
    private Long supplierCategoryId;

    @Schema(description = "供应商分类信息")
    private CategoryVO supplierCategory;

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

    @Schema(description = "供应商品状态")
    private Integer supplierSpuStatus;

    @Schema(description = "商家导入供应商品是否以改变商品图片或名称，0:未改变 1:改变了商品图片 2:改变了商品名字")
    private Integer isUpdateMsg;

    @Schema(description = "预售类型  -1：未开启 0.全款预售 1.定金预售")
    private Integer preSaleType;

    @Schema(description = "定金收取类型 0.按比例 1.按金额")
    private Integer depositType;

    @Schema(description = "定金数额(定金收取类型比例为0时，代表百分比*100，为1时代表实际金额*100）")
    private Long depositAmount;

    @Schema(description = "定金数值")
    private BigDecimal depositValue;

    @Schema(description = "定金膨胀数额(定金收取类型比例为0时，代表百分比*100，为1时代表实际金额*100）")
    private Long depositExpansionAmount;

    @Schema(description = "定金膨胀数值")
    private BigDecimal depositExpansionValue;

    @Schema(description = "定金支付开始时间")
    private Date depositStartTime;

    @Schema(description = "定金支付结束时间")
    private Date depositEndTime;

    @Schema(description = "尾款支付开始时间")
    private Date balanceStartTime;

    @Schema(description = "尾款支付结束时间")
    private Date balanceEndTime;

    @Schema(description = "预售发货类型 -1.固定时间 x.尾款支付后x天发货")
    private Integer preSaleDeliveryType;

    @Schema(description = "预售发货时间")
    private Date preSaleDeliveryTime;

    @Schema(description = "默认加价比例 0.按比例加价 1.按固定数值加价")
    private Integer salesPriceType;

    @Schema(description = "默认加价比例为0时，代表百分比*100，为1时代表实际奖励金额*100")
    private Long salesPrice;

    @Schema(description = "供应商分账比例", requiredMode = Schema.RequiredMode.REQUIRED)
    private Double supplierRate;

    @Schema(description = "计量单位")
    private String measureUnit;

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

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

    @Schema(description = "是否为套餐商品")
    private Boolean isComboSpu;

    @Schema(description = "系统id")
    private Integer sysType;

    @Schema(description = "用户id")
    private Long userId;

    @Schema(description = "核销次数 -1.多次核销 0.无需核销 1.单次核销")
    private Integer writeOffNum;

    @Schema(description = "多次核销次数 -1.无限次")
    private Integer writeOffMultipleCount;

    @Schema(description = "核销有效期 -1.长期有效 0.自定义  x.x天内有效")
    private Integer writeOffTime;

    @Schema(description = "核销开始时间")
    private Date writeOffStart;

    @Schema(description = "核销结束时间")
    private Date writeOffEnd;

    @Schema(description = "是否开启同城配送")
    private Boolean cityDelivery;

    @Schema(description = "是否库存预警商品 1.是 0.否, 仅用于更新es商品的库存预警状态")
    private Integer stockWarning;

    @Schema(description = "赠品")
    private GiveawayVO giveawayVO;

    public Long getDeliveryAmount() {
        return deliveryAmount;
    }

    public void setDeliveryAmount(Long deliveryAmount) {
        this.deliveryAmount = deliveryAmount;
    }

    public SpuVO() {
    }

    public Boolean getCityDelivery() {
        return cityDelivery;
    }

    public void setCityDelivery(Boolean cityDelivery) {
        this.cityDelivery = cityDelivery;
    }

    public Boolean getComboSpu() {
        return isComboSpu;
    }

    public void setComboSpu(Boolean comboSpu) {
        isComboSpu = comboSpu;
    }

    public Integer getWriteOffNum() {
        return writeOffNum;
    }

    public void setWriteOffNum(Integer writeOffNum) {
        this.writeOffNum = writeOffNum;
    }

    public Integer getWriteOffMultipleCount() {
        return writeOffMultipleCount;
    }

    public void setWriteOffMultipleCount(Integer writeOffMultipleCount) {
        this.writeOffMultipleCount = writeOffMultipleCount;
    }

    public Integer getWriteOffTime() {
        return writeOffTime;
    }

    public void setWriteOffTime(Integer writeOffTime) {
        this.writeOffTime = writeOffTime;
    }

    public Date getWriteOffStart() {
        return writeOffStart;
    }

    public void setWriteOffStart(Date writeOffStart) {
        this.writeOffStart = writeOffStart;
    }

    public Date getWriteOffEnd() {
        return writeOffEnd;
    }

    public void setWriteOffEnd(Date writeOffEnd) {
        this.writeOffEnd = writeOffEnd;
    }

    public Integer getSysType() {
        return sysType;
    }

    public void setSysType(Integer sysType) {
        this.sysType = sysType;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Boolean getIsComboSpu() {
        return isComboSpu;
    }

    public void setIsComboSpu(Boolean ComboSpu) {
        isComboSpu = ComboSpu;
    }

    public Double getSupplierRate() {
        return supplierRate;
    }

    public void setSupplierRate(Double supplierRate) {
        this.supplierRate = supplierRate;
    }

    public Long getSalesPrice() {
        return salesPrice;
    }

    public void setSalesPrice(Long salesPrice) {
        this.salesPrice = salesPrice;
    }

    public Integer getSalesPriceType() {
        return salesPriceType;
    }

    public void setSalesPriceType(Integer salesPriceType) {
        this.salesPriceType = salesPriceType;
    }

    public Long getDepositExpansionAmount() {
        return depositExpansionAmount;
    }

    public void setDepositExpansionAmount(Long depositExpansionAmount) {
        this.depositExpansionAmount = depositExpansionAmount;
    }

    public BigDecimal getDepositExpansionValue() {
        return depositExpansionValue;
    }

    public void setDepositExpansionValue(BigDecimal depositExpansionValue) {
        this.depositExpansionValue = depositExpansionValue;
    }

    public Integer getPreSaleType() {
        return preSaleType;
    }

    public void setPreSaleType(Integer preSaleType) {
        this.preSaleType = preSaleType;
    }

    public Integer getDepositType() {
        return depositType;
    }

    public void setDepositType(Integer depositType) {
        this.depositType = depositType;
    }

    public Long getDepositAmount() {
        return depositAmount;
    }

    public void setDepositAmount(Long depositAmount) {
        this.depositAmount = depositAmount;
    }

    public BigDecimal getDepositValue() {
        return depositValue;
    }

    public void setDepositValue(BigDecimal depositValue) {
        this.depositValue = depositValue;
    }

    public Date getDepositStartTime() {
        return depositStartTime;
    }

    public void setDepositStartTime(Date depositStartTime) {
        this.depositStartTime = depositStartTime;
    }

    public Date getDepositEndTime() {
        return depositEndTime;
    }

    public void setDepositEndTime(Date depositEndTime) {
        this.depositEndTime = depositEndTime;
    }

    public Date getBalanceStartTime() {
        return balanceStartTime;
    }

    public void setBalanceStartTime(Date balanceStartTime) {
        this.balanceStartTime = balanceStartTime;
    }

    public Date getBalanceEndTime() {
        return balanceEndTime;
    }

    public void setBalanceEndTime(Date balanceEndTime) {
        this.balanceEndTime = balanceEndTime;
    }

    public Integer getPreSaleDeliveryType() {
        return preSaleDeliveryType;
    }

    public void setPreSaleDeliveryType(Integer preSaleDeliveryType) {
        this.preSaleDeliveryType = preSaleDeliveryType;
    }

    public Date getPreSaleDeliveryTime() {
        return preSaleDeliveryTime;
    }

    public void setPreSaleDeliveryTime(Date preSaleDeliveryTime) {
        this.preSaleDeliveryTime = preSaleDeliveryTime;
    }

    public Integer getIsUpdateMsg() {
        return isUpdateMsg;
    }

    public void setIsUpdateMsg(Integer isUpdateMsg) {
        this.isUpdateMsg = isUpdateMsg;
    }

    public Integer getSupplierSpuStatus() {
        return supplierSpuStatus;
    }

    public void setSupplierSpuStatus(Integer supplierSpuStatus) {
        this.supplierSpuStatus = supplierSpuStatus;
    }

    public Integer getIsSynUpdate() {
        return isSynUpdate;
    }

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

    public Long getSupplierCategoryId() {
        return supplierCategoryId;
    }

    public void setSupplierCategoryId(Long supplierCategoryId) {
        this.supplierCategoryId = supplierCategoryId;
    }

    public CategoryVO getSupplierCategory() {
        return supplierCategory;
    }

    public void setSupplierCategory(CategoryVO supplierCategory) {
        this.supplierCategory = supplierCategory;
    }

    public Integer getSalesType() {
        return salesType;
    }

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

    public Long getOldSpuId() {
        return oldSpuId;
    }

    public void setOldSpuId(Long oldSpuId) {
        this.oldSpuId = oldSpuId;
    }

    public Integer getSkuChoiceStatus() {
        return skuChoiceStatus;
    }

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

    public String getMeasureUnit() {
        return measureUnit;
    }

    public void setMeasureUnit(String measureUnit) {
        this.measureUnit = measureUnit;
    }

    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 Long getBrandId() {
        return brandId;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    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 getShopId() {
        return shopId;
    }

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

    public List<SpuLangVO> getSpuLangList() {
        return spuLangList;
    }

    public void setSpuLangList(List<SpuLangVO> spuLangList) {
        this.spuLangList = spuLangList;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSellingPoint() {
        return sellingPoint;
    }

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

    public String getMainImgUrl() {
        return mainImgUrl;
    }

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

    public String getImgUrls() {
        return imgUrls;
    }

    public void setImgUrls(String imgUrls) {
        this.imgUrls = imgUrls;
    }

    public String getVideo() {
        return video;
    }

    public void setVideo(String video) {
        this.video = video;
    }

    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 getStatus() {
        return status;
    }

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

    public Integer getHasSkuImg() {
        return hasSkuImg;
    }

    public void setHasSkuImg(Integer hasSkuImg) {
        this.hasSkuImg = hasSkuImg;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }

    public List<SpuDetailVO> getDetailList() {
        return detailList;
    }

    public void setDetailList(List<SpuDetailVO> detailList) {
        this.detailList = detailList;
    }

    public Integer getTotalStock() {
        return totalStock;
    }

    public void setTotalStock(Integer totalStock) {
        this.totalStock = totalStock;
    }

    public List<SpuAttrValueVO> getSpuAttrValues() {
        return spuAttrValues;
    }

    public void setSpuAttrValues(List<SpuAttrValueVO> spuAttrValues) {
        this.spuAttrValues = spuAttrValues;
    }

    public List<SkuVO> getSkus() {
        return skus;
    }

    public void setSkus(List<SkuVO> skus) {
        this.skus = skus;
    }

    public String getDeliveryMode() {
        return deliveryMode;
    }

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

    public Long getDeliveryTemplateId() {
        return deliveryTemplateId;
    }

    public void setDeliveryTemplateId(Long deliveryTemplateId) {
        this.deliveryTemplateId = deliveryTemplateId;
    }

    public Integer getSpuType() {
        return spuType;
    }

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

    public Long getActivityId() {
        return activityId;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public Integer getSpuMold() {
        return spuMold;
    }

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

    public Integer getIsRefund() {
        return isRefund;
    }

    public void setIsRefund(Integer isRefund) {
        this.isRefund = isRefund;
    }

    public String getVirtualRemark() {
        return virtualRemark;
    }

    public void setVirtualRemark(String virtualRemark) {
        this.virtualRemark = virtualRemark;
    }

    public Integer getSeq() {
        return seq;
    }

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

    public BrandVO getBrand() {
        return brand;
    }

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

    public Integer getSaleNum() {
        return saleNum;
    }

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

    public Integer getCommentNum() {
        return commentNum;
    }

    public void setCommentNum(Integer commentNum) {
        this.commentNum = commentNum;
    }

    public DeliveryModeVO getDeliveryModeVO() {
        return deliveryModeVO;
    }

    public void setDeliveryModeVO(DeliveryModeVO deliveryModeVO) {
        this.deliveryModeVO = deliveryModeVO;
    }

    public String getShopName() {
        return shopName;
    }

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

    public CategoryVO getCategory() {
        return category;
    }

    public void setCategory(CategoryVO category) {
        this.category = category;
    }

    public CategoryVO getShopCategory() {
        return shopCategory;
    }

    public void setShopCategory(CategoryVO shopCategory) {
        this.shopCategory = shopCategory;
    }

    public Long getReferenceId() {
        return referenceId;
    }

    public void setReferenceId(Long referenceId) {
        this.referenceId = referenceId;
    }

    public Long getScoreFee() {
        return scoreFee;
    }

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

    public String getSpuCode() {
        return spuCode;
    }

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

    public Integer getSupplierSpuType() {
        return supplierSpuType;
    }

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

    public Long getSupplierSpuId() {
        return supplierSpuId;
    }

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

    public Integer getSupplierDeliveryType() {
        return supplierDeliveryType;
    }

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

    public Long getSupplierId() {
        return supplierId;
    }

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

    public Double getRate() {
        return rate;
    }

    public void setRate(Double rate) {
        this.rate = rate;
    }

    @Schema(description = "供应商spu编码")
    private String supplierSpuCode;

    public void setSupplierSpuCode(String supplierSpuCode) {
        this.supplierSpuCode = supplierSpuCode;
    }

    public String getSupplierSpuCode() {
        return supplierSpuCode;
    }

    public Integer getStockWarning() {
        return stockWarning;
    }

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

    public GiveawayVO getGiveawayVO() {
        return giveawayVO;
    }

    public void setGiveawayVO(GiveawayVO giveawayVO) {
        this.giveawayVO = giveawayVO;
    }

    public String getSupplierName() {
        return supplierName;
    }

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

    public static class DeliveryModeVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
        /**
         * 用户自提
         */
        @Schema(description = "用户自提", requiredMode = Schema.RequiredMode.REQUIRED)
        private Boolean hasUserPickUp;

        /**
         * 店铺配送
         */
        @Schema(description = "店铺配送", requiredMode = Schema.RequiredMode.REQUIRED)
        private Boolean hasShopDelivery;

        /**
         * 同城配送
         */
        @Schema(description = "同城配送", requiredMode = Schema.RequiredMode.REQUIRED)
        private Boolean hasCityDelivery;

        public Boolean getHasUserPickUp() {
            return hasUserPickUp;
        }

        public void setHasUserPickUp(Boolean hasUserPickUp) {
            this.hasUserPickUp = hasUserPickUp;
        }

        public Boolean getHasShopDelivery() {
            return hasShopDelivery;
        }

        public void setHasShopDelivery(Boolean hasShopDelivery) {
            this.hasShopDelivery = hasShopDelivery;
        }

        public Boolean getHasCityDelivery() {
            return hasCityDelivery;
        }

        public void setHasCityDelivery(Boolean hasCityDelivery) {
            this.hasCityDelivery = hasCityDelivery;
        }

        @Override
        public String toString() {
            return "DeliveryModeVO{" +
                    "hasUserPickUp=" + hasUserPickUp +
                    ", hasShopDelivery=" + hasShopDelivery +
                    ", hasCityDelivery=" + hasCityDelivery +
                    '}';
        }
    }

    @Override
    public String toString() {
        return "SpuVO{" +
                "spuId=" + spuId +
                ", oldSpuId=" + oldSpuId +
                ", brandId=" + brandId +
                ", categoryId=" + categoryId +
                ", shopCategoryId=" + shopCategoryId +
                ", shopId=" + shopId +
                ", spuLangList=" + spuLangList +
                ", name='" + name + '\'' +
                ", sellingPoint='" + sellingPoint + '\'' +
                ", mainImgUrl='" + mainImgUrl + '\'' +
                ", imgUrls='" + imgUrls + '\'' +
                ", video='" + video + '\'' +
                ", priceFee=" + priceFee +
                ", marketPriceFee=" + marketPriceFee +
                ", status=" + status +
                ", hasSkuImg=" + hasSkuImg +
                ", detail='" + detail + '\'' +
                ", detailList=" + detailList +
                ", totalStock=" + totalStock +
                ", spuAttrValues=" + spuAttrValues +
                ", skus=" + skus +
                ", deliveryMode='" + deliveryMode + '\'' +
                ", deliveryTemplateId=" + deliveryTemplateId +
                ", deliveryAmount=" + deliveryAmount +
                ", spuType=" + spuType +
                ", activityId=" + activityId +
                ", spuMold=" + spuMold +
                ", isRefund=" + isRefund +
                ", virtualRemark='" + virtualRemark + '\'' +
                ", seq=" + seq +
                ", isTop=" + isTop +
                ", brand=" + brand +
                ", saleNum=" + saleNum +
                ", commentNum=" + commentNum +
                ", deliveryModeVO=" + deliveryModeVO +
                ", shopName='" + shopName + '\'' +
                ", category=" + category +
                ", shopCategory=" + shopCategory +
                ", referenceId=" + referenceId +
                ", scoreFee=" + scoreFee +
                ", rate=" + rate +
                ", spuCode='" + spuCode + '\'' +
                ", supplierSpuType=" + supplierSpuType +
                ", supplierSpuId=" + supplierSpuId +
                ", supplierDeliveryType=" + supplierDeliveryType +
                ", supplierId=" + supplierId +
                ", supplierName='" + supplierName + '\'' +
                ", supplierCategoryId=" + supplierCategoryId +
                ", supplierCategory=" + supplierCategory +
                ", isSynUpdate=" + isSynUpdate +
                ", supplierSpuStatus=" + supplierSpuStatus +
                ", isUpdateMsg=" + isUpdateMsg +
                ", preSaleType=" + preSaleType +
                ", depositType=" + depositType +
                ", depositAmount=" + depositAmount +
                ", depositValue=" + depositValue +
                ", depositExpansionAmount=" + depositExpansionAmount +
                ", depositExpansionValue=" + depositExpansionValue +
                ", depositStartTime=" + depositStartTime +
                ", depositEndTime=" + depositEndTime +
                ", balanceStartTime=" + balanceStartTime +
                ", balanceEndTime=" + balanceEndTime +
                ", preSaleDeliveryType=" + preSaleDeliveryType +
                ", preSaleDeliveryTime=" + preSaleDeliveryTime +
                ", salesPriceType=" + salesPriceType +
                ", salesPrice=" + salesPrice +
                ", supplierRate=" + supplierRate +
                ", measureUnit='" + measureUnit + '\'' +
                ", skuChoiceStatus=" + skuChoiceStatus +
                ", salesType=" + salesType +
                ", isComboSpu=" + isComboSpu +
                ", sysType=" + sysType +
                ", userId=" + userId +
                ", writeOffNum=" + writeOffNum +
                ", writeOffMultipleCount=" + writeOffMultipleCount +
                ", writeOffTime=" + writeOffTime +
                ", writeOffStart=" + writeOffStart +
                ", writeOffEnd=" + writeOffEnd +
                ", cityDelivery=" + cityDelivery +
                ", stockWarning=" + stockWarning +
                ", giveawayVO=" + giveawayVO +
                ", supplierSpuCode='" + supplierSpuCode + '\'' +
                '}';
    }
}
