package shop.alien.entity.store.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 根据类型获取美食详情响应 DTO
 *
 * @author auto-generated
 * @since 2025-01-01
 */
@Data
@ApiModel(value = "CuisineTypeResponseDto", description = "根据类型获取美食详情响应")
public class CuisineTypeResponseDto {

    @ApiModelProperty(value = "名称，格式：套餐：{套餐名称}（引用上述两个单品）")
    private String name;

    @ApiModelProperty(value = "数据对象")
    private CuisineTypeData data;

    @Data
    @ApiModel(value = "CuisineTypeData", description = "美食详情数据")
    public static class CuisineTypeData {

        @ApiModelProperty(value = "美食类型: 1-单品，2-套餐")
        private Integer cuisineType;

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

        @ApiModelProperty(value = "菜名/套餐名")
        private String name;

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

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

        @ApiModelProperty(value = "菜品分类名称（JSON数组，如：[\"热菜\",\"凉菜\"]）")
        private String categoryNames;

        @ApiModelProperty(value = "首页展示（0:否, 1:是）")
        private Integer isHomepageDisplay;

        @ApiModelProperty(value = "菜品标签（JSON数组，如：[\"招牌菜\",\"推荐\"]）")
        private String tags;

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

        @ApiModelProperty(value = "图片列表，最多 9 张 URL，逗号分隔")
        private String images;

        @ApiModelProperty(value = "菜品原料json(原料名称:name,所需重量:height,成本价:cost,推荐价格:suggest)")
        private String rawJson;

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

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

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

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

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

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

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

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

        @ApiModelProperty(value = "套餐组合JSON字符串")
        private String groupJson;

        @ApiModelProperty("门店电话")
        private String storePhone;

        @ApiModelProperty("门店名称")
        private String storeName;

        @ApiModelProperty("提交时间")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date createdTime;

        @ApiModelProperty("审核时间")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date auditTime;

        @ApiModelProperty("审核状态")
        private Integer auditStatus;

        @ApiModelProperty("上下架状态")
        private Integer shelfStatus;

    }
}

