package com.tmerclub.cloud.cuerecycle.model.dto;

import com.tmerclub.cloud.common.validate.AddGroup;
import com.tmerclub.cloud.common.validate.EditGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 球杆商品对象
 *
 * @author :  frank
 * @create :  2025-04-13
 */
@Data
public class CueProductDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 商品ID
     */
    @NotNull(message = "商品ID不能为空", groups = {EditGroup.class})
    private Long productId;
    /**
     * 关联的品牌ID
     */
    @NotNull(message = "未关联球杆品牌", groups = {AddGroup.class})
    private Long brandId;
    /**
     * 关联的系列ID
     */
    @NotNull(message = "未关联球杆系列", groups = {AddGroup.class})
    private Long seriesId;
    /**
     * 关联的球杆类型ID
     */
    @NotNull(message = "未关联球杆类型", groups = {AddGroup.class})
    private Long typeId;
    /**
     * 商品名称
     */
    @NotBlank(message = "商品名称不能为空", groups = {AddGroup.class})
    private String productName;
    /**
     * 商品描述
     */
    private String productDescription;
    /**
     * 商品图片
     */
    @NotBlank(message = "商品图片不能为空", groups = {AddGroup.class})
    private String productImages;
    /**
     * 价格
     */
    @NotNull(message = "商品价格不能为空", groups = {AddGroup.class})
    private Long productPrice;
    /**
     * 排序
     */
    private Integer productSeq;
    /**
     * 状态：0-禁用，1-启用
     */
    private Integer productStatus;
}