package cn.iocoder.yudao.module.system.service.dishes;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.api.dish.dto.DishExcelDto;
import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesRespVO;
import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesSaveReqVO;
import cn.iocoder.yudao.module.system.controller.app.dishes.vo.AppSaveVO;
import cn.iocoder.yudao.module.system.controller.app.dishes.vo.AppUpdateVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dishes.DishesDO;

import javax.validation.Valid;
import java.util.List;
import java.util.Map;

/**
 * 菜品管理 Service 接口
 *
 * @author 开发账号
 */
public interface DishesService {

    /**
     * 创建菜品管理
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createDishes(@Valid DishesSaveReqVO createReqVO);

    Long createDishesApp(AppSaveVO vo);

    /**
     * 更新菜品管理
     *
     * @param updateReqVO 更新信息
     */
    void updateDishes(@Valid DishesSaveReqVO updateReqVO);

    void updateDishesApp( AppUpdateVO vo);
    /**
     * 删除菜品管理
     *
     * @param id 编号
     */
    void deleteDishes(Long id);

    /**
     * 获得菜品管理
     *
     * @param id 编号
     * @return 菜品管理
     */
    DishesDO getDishes(Long id);

    List<DishesDO>  getDishesList(List<Long> ids);
    DishesRespVO getDishes1(Long id);

    /**
     * 获得菜品管理分页
     *
     * @param pageReqVO 分页查询
     * @return 菜品管理分页
     */
    PageResult<DishesDO> getDishesPage(DishesPageReqVO pageReqVO);

    PageResult<DishesDO> getDishesPageApp(DishesPageReqVO pageReqVO);

    Map<Long,String> getDishName(List<Long> ids);

    List<DishesDO> getTodayDishes();

    List<DishesDO> getTodayDishesNew();

    void exportDish(List<DishExcelDto> dishExcels, Long storeId);
}