package shop.alien.entity.store.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 菜品详情VO
 *
 * @author system
 * @since 2025-01-XX
 */
@Data
@ApiModel(value = "CuisineDetailVO对象", description = "菜品详情")
public class CuisineDetailVO {

    @ApiModelProperty(value = "菜品ID")
    private Integer id;

    @ApiModelProperty(value = "商户id")
    private Integer storeId;

    @ApiModelProperty(value = "菜品名称")
    private String name;

    @ApiModelProperty(value = "菜品图片列表")
    private List<String> images;

    @ApiModelProperty(value = "价格（总价）")
    private BigDecimal totalPrice;

    @ApiModelProperty(value = "月售数量")
    private Integer monthlySales;

    @ApiModelProperty(value = "标签(多个标签用逗号分隔)")
    private String tags;

    @ApiModelProperty(value = "菜品短评")
    private String dishReview;

    @ApiModelProperty(value = "菜品描述")
    private String description;

    @ApiModelProperty(value = "图文详情-文字")
    private String detailContent;

    @ApiModelProperty(value = "图文详情-图片")
    private String imageContent;

    @ApiModelProperty(value = "补充说明")
    private String extraNote;

    @ApiModelProperty(value = "菜品分类ids（JSON数组，如：[1,2,3]）")
    private String categoryIds;

    @ApiModelProperty(value = "是否需要预约：0=否，1=是")
    private Integer needReserve;

    @ApiModelProperty(value = "预约规则")
    private String reserveRule;

    @ApiModelProperty(value = "适用人数")
    private String peopleLimit;

    @ApiModelProperty(value = "使用规则")
    private String usageRule;

    @ApiModelProperty(value = "购物车中的数量")
    private Integer cartQuantity;

    @ApiModelProperty(value = "菜品类型(1:单品, 2:套餐)")
    private Integer cuisineType;

    @ApiModelProperty(value = "套餐包含的菜品列表(仅套餐有)")
    private List<CuisineComboItemVO> comboItems;
}
