package cn.iocoder.yudao.module.product.controller.admin.spu.vo;
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import jakarta.validation.Valid;
|
import jakarta.validation.constraints.NotEmpty;
|
import jakarta.validation.constraints.NotNull;
|
import lombok.Data;
|
|
import java.util.List;
|
|
@Schema(description = "管理后台 - 商品 SPU 新增/更新 Request VO")
|
@Data
|
public class ProductSpuSaveReqVO {
|
|
@Schema(description = "商品编号", example = "1")
|
private Long id;
|
|
@Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉小短袖")
|
@NotEmpty(message = "商品名称不能为空")
|
private String name;
|
|
@Schema(description = "关键字", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉丝滑不出汗")
|
@NotEmpty(message = "商品关键字不能为空")
|
private String keyword;
|
|
@Schema(description = "商品简介", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉小短袖简介")
|
@NotEmpty(message = "商品简介不能为空")
|
private String introduction;
|
|
@Schema(description = "商品详情", requiredMode = Schema.RequiredMode.REQUIRED, example = "清凉小短袖详情")
|
@NotEmpty(message = "商品详情不能为空")
|
private String description;
|
|
@Schema(description = "商品分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@NotNull(message = "商品分类不能为空")
|
private Long categoryId;
|
|
@Schema(description = "商品品牌编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@NotNull(message = "商品品牌不能为空")
|
private Long brandId;
|
|
@Schema(description = "商品封面图", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png")
|
@NotEmpty(message = "商品封面图不能为空")
|
private String picUrl;
|
|
@Schema(description = "商品轮播图", requiredMode = Schema.RequiredMode.REQUIRED,
|
example = "[https://www.iocoder.cn/xx.png, https://www.iocoder.cn/xxx.png]")
|
private List<String> sliderPicUrls;
|
|
@Schema(description = "排序字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@NotNull(message = "商品排序字段不能为空")
|
private Integer sort;
|
|
// ========== SKU 相关字段 =========
|
|
@Schema(description = "规格类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
|
@NotNull(message = "商品规格类型不能为空")
|
private Boolean specType;
|
|
// ========== 物流相关字段 =========
|
|
@Schema(description = "配送方式数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@NotEmpty(message = "配送方式不能为空")
|
private List<Integer> deliveryTypes;
|
|
@Schema(description = "物流配置模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "111")
|
private Long deliveryTemplateId;
|
|
// ========== 营销相关字段 =========
|
|
@Schema(description = "赠送积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "111")
|
@NotNull(message = "商品赠送积分不能为空")
|
private Integer giveIntegral;
|
|
@Schema(description = "分销类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
|
@NotNull(message = "商品分销类型不能为空")
|
private Boolean subCommissionType;
|
|
// ========== 统计相关字段 =========
|
|
@Schema(description = "虚拟销量", example = "66")
|
private Integer virtualSalesCount;
|
|
@Schema(description = "商品销量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1999")
|
private Integer salesCount;
|
|
@Schema(description = "浏览量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1999")
|
private Integer browseCount;
|
|
// ========== SKU 相关字段 =========
|
|
@Schema(description = "SKU 数组")
|
@Valid
|
private List<ProductSkuSaveReqVO> skus;
|
|
}
|