package com.tashow.cloud.product.vo.category;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - 产品类目新增/修改 Request VO")
@Data
public class CategorySaveReqVO {

    @Schema(description = "类目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15856")
    private Long categoryId;

    @Schema(description = "店铺ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22369")
    @NotNull(message = "店铺ID不能为空")
    private Long shopId;

    @Schema(description = "父节点", requiredMode = Schema.RequiredMode.REQUIRED, example = "16509")
    @NotNull(message = "父节点不能为空")
    private Long parentId;

    @Schema(description = "产品类目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "产品类目名称不能为空")
    private String categoryName;

    @Schema(description = "类目图标")
    private String icon;

    @Schema(description = "类目的显示图片")
    private String pic;

    @Schema(description = "类目描述")
    private String describe;

    @Schema(description = "标签")
    private String tag;

    @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "排序不能为空")
    private Integer seq;

    @Schema(description = "默认是1，表示正常状态,0为下线状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "默认是1，表示正常状态,0为下线状态不能为空")
    private Integer status;

    @Schema(description = "分类层级", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "分类层级不能为空")
    private Integer grade;

}