
package com.tmerclub.cloud.product.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.tmerclub.cloud.common.model.ExcelModel;
import com.tmerclub.cloud.common.product.vo.BrandLangVO;
import com.tmerclub.cloud.common.product.vo.SpuLangVO;
import com.tmerclub.cloud.common.product.vo.SpuSkuAttrValueVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

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

/**
 * spu信息VO
 *
 * @author tmerclub
 */
@Data
@ToString
public class PlatformSpuExcelVO extends ExcelModel implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * excel 信息
     */
    public static final String EXCEL_NAME = "平台商品信息";
    /**
     * 哪一行开始导出
     */
    public static final int MERGE_ROW_INDEX = 2;
    /**
     * 需要合并的列数组
     */
    public static final int[] MERGE_COLUMN_INDEX = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18};

    @ExcelProperty(value = {"商品信息", "编号*"}, index = 0)
    private String seq;

    @ExcelProperty(value = {"商品信息", "店铺名称"}, index = 1)
    private String shopName;

    @ExcelProperty(value = {"商品信息", "商品中文名称"}, index = 2)
    private String nameZh;


    @ExcelIgnore
    private Integer spuType;

    @ExcelProperty(value = {"商品信息", "商品类型"}, index = 3)
    private String spuTypeName;

    @ExcelProperty(value = {"商品信息", "商品类别"}, index = 4)
    private String spuMold;

    @ExcelProperty(value = {"商品信息", "平台分类"}, index = 5)
    private String categoryName;

    @ExcelProperty(value = {"商品信息", "店铺分类"}, index = 6)
    private String shopCategoryName;

    @ExcelProperty(value = {"商品信息", "商品中文卖点"}, index = 7)
    private String sellingPointZh;

    @ExcelProperty(value = {"商品信息", "品牌"}, index = 8)
    private String brandName;

    @ExcelProperty(value = {"商品信息", "配送方式"}, index = 9)
    private String deliveryMode;

    @ExcelProperty(value = {"商品信息", "运费模板"}, index = 10)
    private String deliveryTemplate;

    @ExcelProperty(value = {"商品信息", "状态"}, index = 11)
    private String status;

    @ExcelProperty(value = {"商品信息", "核销次数"}, index = 12)
    private String writeOffNum;

    @ExcelProperty(value = {"商品信息", "多次核销次数"}, index = 13)
    private String writeOffMultipleCount;

    @ExcelProperty(value = {"商品信息", "核销有效期"}, index = 14)
    private String writeOffTime;

    @ExcelProperty(value = {"商品信息", "核销开始时间"}, index = 15)
    private Date writeOffStart;

    @ExcelProperty(value = {"商品信息", "核销结束时间"}, index = 16)
    private Date writeOffEnd;

    @ExcelProperty(value = {"商品信息", "是否可以退款"}, index = 17)
    private String isRefund;

    @ExcelProperty(value = {"商品信息", "虚拟商品留言"}, index = 18)
    private String virtualRemark;

    @ExcelProperty(value = {"商品信息", "是否置顶"}, index = 19)
    private String isTop;

    @ExcelProperty(value = {"商品信息", "注水销量"}, index = 20)
    private Integer waterSoldNum;

    @ExcelProperty({"商品sku信息", "中文sku名称"})
    private String skuNameZh;

    @ExcelProperty({"商品sku信息", "中文销售属规格"})
    private String propertiesZh;

    @ExcelProperty({"商品sku信息", "售价"})
    private String priceFee;

    @ExcelProperty({"商品sku信息", "市场价"})
    private String marketPriceFee;

    @ExcelProperty({"商品sku信息", "库存"})
    private Integer stock;

    @ExcelProperty({"商品sku信息", "商品sku编码"})
    private String partyCode;

    @ExcelProperty({"商品sku信息", "商品重量"})
    private Double weight;

    @ExcelProperty({"商品sku信息", "商品体积"})
    private Double volume;

    /**
     * 商品id
     */
    @ExcelIgnore
    private Long spuId;

    /**
     * 物流模板id
     */
    @ExcelIgnore
    private Long deliveryTemplateId;

    @ExcelIgnore
    private List<SpuSkuAttrValueVO> spuSkuAttrValueList;

    @ExcelIgnore
    private List<BrandLangVO> brandLangList;

    @ExcelIgnore
    private List<SpuLangVO> spuLangList;

    @ExcelIgnore
    private Long categoryId;

    @ExcelIgnore
    private Long shopCategoryId;

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

}
