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

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.devuce.vo.DevuceListVO;
import cn.iocoder.yudao.module.system.controller.app.devuce.vo.DevucePageReqVO;
import cn.iocoder.yudao.module.system.controller.app.devuce.vo.DevuceReqVO;
import cn.iocoder.yudao.module.system.controller.app.devuce.vo.DevuceSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.devuce.DevuceDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dishes.DishesDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dishestype.DishesTypeDO;

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

/**
 * 设备 Service 接口
 *
 * @author 开发账号
 */
public interface DevuceService {

    /**
     * 创建设备
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createDevuce(@Valid DevuceSaveReqVO createReqVO);

    /**
     * 更新设备
     *
     * @param updateReqVO 更新信息
     */
    void updateDevuce(@Valid DevuceSaveReqVO updateReqVO);

    /**
     * 删除设备
     *
     * @param id 编号
     */
    void deleteDevuce(Long id);

    /**
     * 获得设备
     *
     * @param id 编号
     * @return 设备
     */
    DevuceDO getDevuce(Long id);

    /**
     * 获得设备分页
     *
     * @param pageReqVO 分页查询
     * @return 设备分页
     */
    PageResult<DevuceDO> getDevucePage(DevucePageReqVO pageReqVO);
    /**
     * @Description: 设备绑定菜品，或计算菜品重量与剩余重量
     * @Author: qjq
     * @Date: 2024/4/10 下午1:40 
     * @return
     */
    DishesDO getDevuceList();

    List<DishesDO> getDishesList(Long carteenId,Long dishecType);
    /**
     * @Description: 获取菜品分类
     * @Author: qjq
     * @Date: 2024/4/9 上午10:33
     * @return
     */
    List<DishesTypeDO> getDishesTypeList(Long carteenId);

        /**
         * @Description: 根据ip获取门店id
         * @Author: qjq
         * @Date: 2024/4/10 下午4:28
         * @return
         */
    Long getCarteenIdByIp();
    /**
     * @Description: 获取菜品营养与菜品名称
     * @Author: qjq
     * @Date: 2024/4/19 下午2:44
     * @return
     */
    List<Map> getDishesNutrition(Long dishesId,String cId);

    void updateWeight(DevuceReqVO updateReqVO);
    List<DevuceListVO> getList(Long storeId);


}