package com.jeesharp.business.modules.food.service;

import com.jeesharp.business.modules.food.entity.FoodMealMenu;
import com.jeesharp.business.modules.food.vo.FoodMealMenuQueryVO;
import com.jeesharp.framework.mybatis.core.service.BaseInterface;

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

public interface FoodMealMenuService extends BaseInterface<FoodMealMenu, FoodMealMenuQueryVO> {

    void createMenu(FoodMealMenu entity);

    void updateMenu(FoodMealMenu entity);

    void updatePublishStatus(String id, String publishStatus);

    boolean existsSameScope(String id, String serviceAreaId, LocalDate menuDate, String mealType, String scopeType, String companyId);

    FoodMealMenu getSameScope(String serviceAreaId, LocalDate menuDate, String mealType, String scopeType, String companyId);

    List<FoodMealMenu> listPublishedMenus(String serviceAreaId, LocalDate mealDate, String mealType, Set<String> scopeTypes, Set<String> mealTypeCandidates);

    List<FoodMealMenu> listByIds(List<String> ids);

    List<String> listIdsBySameScope(String serviceAreaId, LocalDate menuDate, String mealType, String scopeType, String companyId);

    List<FoodMealMenu> listByDateRange(LocalDate startDate, LocalDate endDate, List<String> serviceAreaIds);
}
