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

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.bonus.canteen.core.basic.domain.AppletReserveCanteenVO;
import com.bonus.canteen.core.basic.domain.CookStallSaleModel;
import com.bonus.canteen.core.cook.domain.CookAppRecipe;
import com.bonus.canteen.core.cook.domain.CookRecipe;
import com.bonus.canteen.core.cook.dto.AllocRecipeStallDTO;
import com.bonus.canteen.core.cook.dto.CookRecipeDTO;
import com.bonus.canteen.core.cook.dto.CookRecipeDetailDTO;
import com.bonus.canteen.core.cook.dto.StallAndRecipeBindDto;
import com.bonus.canteen.core.cook.vo.*;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.time.LocalDate;
import java.util.List;
import java.util.Set;

/**
 * 菜品计划信息Mapper接口
 *
 * @author xsheng
 * @date 2025-05-25
 */
public interface CookRecipeH5Mapper {
    List<AppletReserveCanteenVO> selectReserveMealCanteenList();

    List<CookStallSaleModel> selectMonthSalesStall(@Param("stallIdList") List<Long> stallIdList);

    List<AppletReserveRecipeVO> selectReserveRecipe(@Param("applyDate") LocalDate applyDate, @Param("recipeId") Long recipeId);

    Long selectStallIdByRecipeId(@Param("recipeId") Long recipeId);

    List<AppletWeekCanteenVO> selectWeekCanteenList();

    List<Long> selectWeekRecipeId(@Param("recipeId") Long recipeId);

    String getBingTimeByRecipeId(@Param("recipeId") Long recipeId);

    List<Long> getRecipeIdListByRecipeId(@Param("recipeId") Long recipeId);

    List<Long> selectWeekRecipeIdHistory(@Param("recipeIdList")  List<Long> recipeId, @Param("effIdSet") Set<Long> effIdSet, @Param("applyDate") LocalDate applyDate);

    List<AppletWeekRecipeVO> selectWeekRecipe(@Param("applyDate") LocalDate applyDate, @Param("recipeId") Long recipeId, @Param("recipeIdList") List<Long> recipeIdList);
}
