package com.jeesharp.business.modules.mall.dto;

import lombok.Data;

import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

/**
 * 商品 SKU 保存 DTO，含价格库存及可选的规格值 ID 组合（标准多规格）。
 *
 * @author jeesharp
 * @since 2026-05-07
 */
@Data
public class MallSkuSaveDTO {

    /**
     * ID（更新时必填）
     */
    private String id;

    /**
     * SKU名称
     */
    private String skuName;

    /**
     * SKU编码
     */
    private String skuCode;

    /**
     * 规格信息（如：颜色:红;尺码:M）
     */
    private String specInfo;

    /**
     * 规格值 ID 列表（与 SPU 已选规格维度顺序一致，用于结构化展示与幂等）
     */
    private List<String> specValueIds;

    /**
     * 销售价格
     */
    @NotNull(message = "销售价格不能为空")
    private BigDecimal price;

    /**
     * 原价
     */
    private BigDecimal originalPrice;

    /**
     * 库存
     */
    @NotNull(message = "库存不能为空")
    private Integer stock;

    /**
     * 库存预警阈值
     */
    private Integer stockWarn;

    /**
     * 条形码
     */
    private String barCode;

    /**
     * SKU图片
     */
    private String image;

    /**
     * 每人限购数量，0表示不限
     */
    private Integer limitPerUser;

    /**
     * 状态：0-禁用 1-启用
     */
    @NotNull(message = "状态不能为空")
    private Integer status;
}