package com.fzm.mall.server.admin.goods_center.entity.dto;

import com.fzm.mall.server.admin.annotation.CustomType;
import com.fzm.mall.server.admin.constant.MALLGlobalConfig;
import com.fzm.mall.server.admin.constant.MallResponseError;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author wangp
 * @date 2021/3/9 10:37
 * @description 重新发布商品信息
 * @since JDK 1.8
 */
@Data
@ApiModel(value = "GoodsRepublishUpdateDTO", description = "重新发布商品信息")
public class GoodsRepublishUpdateDTO {

    @ApiModelProperty("商品id")
    @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
    private String goodsId;

    @ApiModelProperty("商品名称")
    @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
    private String name;

    @ApiModelProperty("商品描述")
    @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
    private String description;

    @ApiModelProperty("商品属性")
    private String prop;

    @ApiModelProperty("商品类目")
    @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
    private String categoryId;

    @ApiModelProperty("商品缩略图")
    @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
    private String thumb;

    @ApiModelProperty("商品展示图")
    @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
    private String imgList;

    @ApiModelProperty("商品视频")
    private String video;

    @ApiModelProperty("视频封面")
    private String videoPoster;

    @ApiModelProperty("ntf文件")
    private String nftFile;

    @ApiModelProperty("商品介绍")
    @NotBlank(message = MallResponseError.NULL_PARAM_ERROR)
    private String detail;

    @ApiModelProperty("商品通证(0.否 1.是，自动生成Token 2.是，使用外部既有Token)")
    private Integer commodityPass;

    @ApiModelProperty("延迟提货(0--否 1--是)")
    private Integer delayDelivery;

    @ApiModelProperty("退货类型")
    @CustomType(pType = MALLGlobalConfig.RETURN_TYPE, message = MallResponseError.PARAM_ERROR)
    @NotNull(message = MallResponseError.NULL_PARAM_ERROR)
    private Integer returnType;

    @ApiModelProperty("退货原因")
    private String returnReason;

    @ApiModelProperty("商品备注")
    private String note;

    @ApiModelProperty("溯源信息")
    private String traceabilityNumber;

    @ApiModelProperty("商品规格")
    private List<GoodsSkuDTO> skuList;

    @ApiModelProperty("商品预售")
    private PreSaleDTO preSaleDTO;

    @ApiModelProperty("商品拍卖")
    private AuctionDTO auctionDTO;

    @ApiModelProperty("商品拍卖")
    private PackageDTO packageDTO;

    @ApiModelProperty("nft")
    private NFTDTO nftdto;
}
