
package com.tmerclub.cloud.common.product.vo;

import com.tmerclub.cloud.common.vo.BaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 套装商品项VO
 *
 * @author tmerclub
 * @date 2022-08-16 09:18:06
 */
public class ComboSpuVO extends BaseVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "套餐商品项id")
    private Long comboSpuId;

    @Schema(description = "套餐id")
    private Long comboId;

    @Schema(description = "套餐价格")
    private Long comboPrice;

    @Schema(description = "商品价格")
    private Long price;

    @Schema(description = "类型：1：主商品 2：搭配商品")
    private Integer type;

    @Schema(description = "是否必选：1：是 0：否")
    @NotNull(message = "是否必选不能为空")
    private Integer required;

    @Schema(description = "起搭数量")
    @NotNull(message = "起搭数量不能为空")
    private Integer leastNum;

    @Schema(description = "状态， -1：已删除 1：正常")
    private Integer status;

    @Schema(description = "商品图片")
    private String pic;

    @Schema(description = "商品名称")
    private String spuName;

    @Schema(description = "商品状态")
    private Integer spuStatus;

    @Schema(description = "sku项列表")
    private List<ComboSpuSkuVO> skuList;

    @Schema(description = "商品id")
    private Long spuId;

    public Long getComboSpuId() {
        return comboSpuId;
    }

    public void setComboSpuId(Long comboSpuId) {
        this.comboSpuId = comboSpuId;
    }

    public Long getComboId() {
        return comboId;
    }

    public void setComboId(Long comboId) {
        this.comboId = comboId;
    }

    public Long getComboPrice() {
        return comboPrice;
    }

    public void setComboPrice(Long comboPrice) {
        this.comboPrice = comboPrice;
    }

    public Long getPrice() {
        return price;
    }

    public void setPrice(Long price) {
        this.price = price;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getRequired() {
        return required;
    }

    public void setRequired(Integer required) {
        this.required = required;
    }

    public Integer getLeastNum() {
        return leastNum;
    }

    public void setLeastNum(Integer leastNum) {
        this.leastNum = leastNum;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getPic() {
        return pic;
    }

    public void setPic(String pic) {
        this.pic = pic;
    }

    public String getSpuName() {
        return spuName;
    }

    public void setSpuName(String spuName) {
        this.spuName = spuName;
    }

    public Integer getSpuStatus() {
        return spuStatus;
    }

    public void setSpuStatus(Integer spuStatus) {
        this.spuStatus = spuStatus;
    }

    public List<ComboSpuSkuVO> getSkuList() {
        return skuList;
    }

    public void setSkuList(List<ComboSpuSkuVO> skuList) {
        this.skuList = skuList;
    }

    public Long getSpuId() {
        return spuId;
    }

    public void setSpuId(Long spuId) {
        this.spuId = spuId;
    }

    @Override
    public String toString() {
        return "ComboSpuVO{" +
                "comboSpuId=" + comboSpuId +
                ", comboId=" + comboId +
                ", comboPrice=" + comboPrice +
                ", price=" + price +
                ", type=" + type +
                ", required=" + required +
                ", leastNum=" + leastNum +
                ", status=" + status +
                ", pic='" + pic + '\'' +
                ", spuName='" + spuName + '\'' +
                ", spuStatus=" + spuStatus +
                ", skuList=" + skuList +
                ", spuId=" + spuId +
                '}';
    }
}
