package shop.alien.storeplatform.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;
import shop.alien.entity.result.R;
import shop.alien.storeplatform.entity.StorePlatformStoreMenu;

import java.util.List;

/**
 * 商户平台-酒吧菜单服务类
 *
 * @author system
 * @since 2025-01-XX
 */
public interface StorePlatformBarMenuService extends IService<StorePlatformStoreMenu> {

    /**
     * 根据ID查询菜单
     *
     * @param id 菜单ID
     * @return 菜单信息
     */
    StorePlatformStoreMenu getById(Integer id);

    /**
     * 根据门店ID查询菜单列表
     *
     * @param storeId 门店ID
     * @return 菜单列表
     */
    List<StorePlatformStoreMenu> getListByStoreId(Integer storeId);

    /**
     * 根据门店ID和菜单类型查询菜单列表
     *
     * @param storeId     门店ID
     * @param dishMenuType 菜单类型：1-菜单，2-酒水
     * @return 菜单列表
     */
    List<StorePlatformStoreMenu> getListByStoreIdAndType(Integer storeId, String dishMenuType, String dishType);

    /**
     * 新增菜单
     *
     * @param storeMenu 菜单信息
     * @return 操作结果
     */
    R<StorePlatformStoreMenu> saveMenu(StorePlatformStoreMenu storeMenu);

    /**
     * 修改菜单
     *
     * @param storeMenu 菜单信息
     * @return 操作结果
     */
    R<StorePlatformStoreMenu> updateMenu(StorePlatformStoreMenu storeMenu);

    /**
     * 新增或修改菜单
     *
     * @param storeMenu 菜单信息
     * @return 操作结果
     */
    R<StorePlatformStoreMenu> saveOrUpdateMenu(StorePlatformStoreMenu storeMenu);

    /**
     * 删除菜单（逻辑删除）
     *
     * @param id 菜单ID
     * @return 操作结果
     */
    R<String> deleteMenu(Integer id);

    /**
     * 批量删除菜单（逻辑删除）
     *
     * @param ids 菜单ID列表
     * @return 操作结果
     */
    R<String> deleteMenuBatch(List<Integer> ids);

    /**
     * Excel导入酒吧菜单
     *
     * @param file     Excel文件
     * @param storeId  门店id
     * @return 导入结果
     */
    R<String> importMenuFromExcel(MultipartFile file, Integer storeId);
}
