package shop.alien.store.service;

import com.baomidou.mybatisplus.extension.service.IService;
import shop.alien.entity.store.StoreCuisine;
import shop.alien.entity.store.dto.CuisineComboDto;
import shop.alien.entity.store.dto.CuisineTypeResponseDto;

import java.util.List;

/**
 * 美食价目表 服务类
 *
 * @author auto-generated
 * @since 2025-01-01
 */
public interface StoreCuisineService extends IService<StoreCuisine> {

    /**
     * 新增美食（单品或套餐）
     */
    boolean addCuisineCombo(CuisineComboDto cuisineComboDto);

    /**
     * 修改美食（单品或套餐）
     */
    boolean updateCuisineCombo(CuisineComboDto cuisineComboDto);

    /**
     * 获取所有单品名称（cuisine_type = 1），用于添加套餐时选择
     * 
     * @param storeId 门店ID
     * @return 已上架且审核通过的单品列表
     */
    List<StoreCuisine> getSingleName(Integer storeId);

    /**
     * 根据 id 与类型获取详情（新格式）：
     * - type = 1：返回单品详情
     * - type = 2：返回套餐详情（主信息 + 套餐包含的单品列表）
     */
    CuisineTypeResponseDto getByCuisineTypeNew(Integer id, Integer cuisineType);

    /**
     * 上下架操作：1-上架，2-下架
     */
    boolean changeShelfStatus(Integer id, Integer shelfStatus);

    /**
     * 根据分类ID字符串（JSON数组格式）查询分类名称
     *
     * @param categoryIds 分类ID字符串（JSON数组格式，如："[1,2,3]"）
     * @return 分类名称JSON数组字符串（如："[\"热菜\",\"凉菜\"]"），如果categoryIds为空则返回null
     */
    String getCategoryNames(String categoryIds);
}


