package com.bonus.canteen.core.cook.service;

import java.util.List;
import com.bonus.canteen.core.cook.domain.CookDishes;
import com.bonus.canteen.core.cook.dto.DishesImportCheckResult;
import com.bonus.canteen.core.cook.dto.MenuDishesImportDTO;
import org.springframework.web.multipart.MultipartFile;

/**
 * 菜品信息Service接口
 * 
 * @author xsheng
 * @date 2025-05-25
 */
public interface ICookDishesService {
    /**
     * 查询菜品信息
     * 
     * @param dishesId 菜品信息主键
     * @return 菜品信息
     */
    public CookDishes selectCookDishesByDishesId(Long dishesId);

    /**
     * 查询菜品信息列表
     * 
     * @param cookDishes 菜品信息
     * @return 菜品信息集合
     */
    public List<CookDishes> selectCookDishesList(CookDishes cookDishes);

    /**
     * 新增菜品信息
     * 
     * @param cookDishes 菜品信息
     * @return 结果
     */
    public int insertCookDishes(CookDishes cookDishes);

    /**
     * 修改菜品信息
     * 
     * @param cookDishes 菜品信息
     * @return 结果
     */
    public int updateCookDishes(CookDishes cookDishes);

    /**
     * 批量删除菜品信息
     * 
     * @param dishesIds 需要删除的菜品信息主键集合
     * @return 结果
     */
    public int deleteCookDishesByDishesIds(Long[] dishesIds);

    /**
     * 删除菜品信息信息
     * 
     * @param dishesId 菜品信息主键
     * @return 结果
     */
    public int deleteCookDishesByDishesId(Long dishesId);

    /**
     * 导入菜品信息
     *
     * @param excel 上传的Excel文件
     * @return 导入结果
     */
    DishesImportCheckResult importDishesCheck(MultipartFile excel);

    /**
     * 新增菜品信息
     *
     * @param request 菜品导入请求
     * @return 是否成功
     */
    Boolean newImportDishes(List<MenuDishesImportDTO> request);
}
