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

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.dishestype.vo.DishesTypeListRespVO;
import cn.iocoder.yudao.module.system.controller.admin.dishestype.vo.DishesTypePageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.dishestype.vo.DishesTypeSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dishestype.DishesTypeDO;

import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 菜品分类 Service 接口
 *
 * @author 开发账号
 */
public interface DishesTypeService {

    /**
     * 创建菜品分类
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createDishesType(@Valid DishesTypeSaveReqVO createReqVO);

    /**
     * 更新菜品分类
     *
     * @param updateReqVO 更新信息
     */
    void updateDishesType(@Valid DishesTypeSaveReqVO updateReqVO);

    /**
     * 删除菜品分类
     *
     * @param id 编号
     */
    void deleteDishesType(Long id);

    /**
     * 获得菜品分类
     *
     * @param id 编号
     * @return 菜品分类
     */
    DishesTypeDO getDishesType(Long id);

    /**
     * 获得菜品分类分页
     *
     * @param pageReqVO 分页查询
     * @return 菜品分类分页
     */
    PageResult<DishesTypeDO> getDishesTypePage(DishesTypePageReqVO pageReqVO);

    PageResult<DishesTypeDO> getDishesTypePageApp(DishesTypePageReqVO pageReqVO);

   /**
    * @Description: 通过门店编号 获得菜品分类以及菜品名称
    * @Author: qjq
    * @Date: 2024/4/15 下午3:13
    * @return
    */
    List<DishesTypeListRespVO> getDishesTypeList(Long carteenId, LocalDateTime startTime,LocalDateTime endTime);

    List<DishesTypeDO> getList();

    DishesTypeDO getByName(String name,Long carteenId);
}