package cn.ysk.cashier.mybatis.service;

import cn.ysk.cashier.enums.OrderStatusEnums;
import cn.ysk.cashier.pojo.order.TbCashierCart;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * (TbShopPermission)表服务接口
 *
 * @author makejava
 * @since 2024-09-14 17:08:48
 */
public interface MpCashierCartService extends IService<TbCashierCart> {

    /**
     * 根据取餐码获取购物车信息
     * @param masterId 取餐码
     * @param shopId 店铺id
     * @return 购物车信息
     */
    List<TbCashierCart> selectTakeoutCart(String masterId, Integer shopId);

    /**
     * 查询无台桌购物车商品
     * @param masterId 取餐码
     * @param shopId 店铺did
     */
    List<TbCashierCart> selectUnTableCart(String masterId, Integer shopId);


    /**
     * 统计当前台桌购物车数量
     * @param shopId 店铺id
     * @param tableId 台桌id
     * @param statusEnums 状态，可不传查询所有
     * @return 购物车数量
     */
    long countByTableId(Integer shopId, String tableId, OrderStatusEnums... statusEnums);

    /**
     * 根据tableIdId和用餐类型清空购物车
     *
     * @param tableId 台桌id
     * @param useType 用餐类型
     * @param shopId  店铺id
     */
    boolean clearCartByTableIdAndUseType(String tableId, String useType, Integer shopId);

}

