package com.ylx.massage.domain.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 规格组合VO（笛卡尔积结果）
 *
 * @author ylx
 * @since 2026-03-26
 */
@Data
@ApiModel("规格组合")
public class SpecComboVO {

    /**
     * 组合索引（用于前端标识）
     */
    @ApiModelProperty("组合索引")
    private Integer index;

    /**
     * 规格值组合（如：["白色", "加粗"]）
     */
    @ApiModelProperty("规格值组合")
    private List<String> specValues;


    /**
     * 组合显示文本（如："白色，加粗"）
     */
    @ApiModelProperty("组合显示文本")
    private String specValueText;

    /**
     * skuID
     */
    private Long skuId;

    /**
     * 商品图片
     */
    private String image;

    /**
     * 现金价格
     */
    private BigDecimal priceMoney;

    /**
     * 积分价格
     */
    private Integer pricePoint;

    /**
     * 原价
     */
    private BigDecimal originPrice;

    /**
     * 库存
     */
    private Integer stock;

    /**
     * 规格名对应关系（如：[{"specName":"颜色","specValue":"白色"},{"specName":"型号","specValue":"加粗"}]）
     */
    @ApiModelProperty("规格名对应关系")
    private List<SpecNameValue> specNameValueList;

    /**
     * 规格名值对
     */
    @Data
    @ApiModel("规格名值对")
    public static class SpecNameValue {

        /**
         * 规格名ID
         */
        @ApiModelProperty("规格名ID")
        private Long specId;

        /**
         * 规格名
         */
        @ApiModelProperty("规格名")
        private String specName;


        /**
         * 规格值
         */
        @ApiModelProperty("规格值")
        private String specValue;

        /**
         * 排序
         */
        @ApiModelProperty("排序")
        private Integer sort;
    }
}
