package com.palmnest.service.dinner.manager;

import com.palmnest.application.bean.Page;
import com.palmnest.application.core.util.WeekDate;
import com.palmnest.application.dto.input.MealSearchDto;
import com.palmnest.model.dinner.Meal;
import com.palmnest.service.GenericManager;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * 餐品manager类
 *
 * @author longmeizhen
 */
public interface MealManager extends GenericManager<Meal, Long> {
	/**
	 * 保存修改餐品
	 *
	 * @param userId
	 * @param dto
	 * @return
	 */
	Meal saveAndUpdateMeal(Meal meal);

	/**
	 * 上架下架删除
	 *
	 * @param id
	 * @param type1上架2下架3删除
	 * @return
	 */
	String updateMeal(Long id, int type, String userId);

	/**
	 * 获取餐品列表
	 *
	 * @param dto
	 * @return
	 */
	Page findList(MealSearchDto dto);

	/**
	 * 获取餐品列表
	 * （获取当天且是上架的餐品）
	 *
	 * @param orgId
	 * @return
	 */
	List<Meal> findMealList(String orgId);

	/**
	 * 获取餐品列表
	 * （获取当天且是上架的餐品）
	 *
	 * @param orgId
	 * @return
	 */
	List<Meal> findMealList(String orgId, String time);

	/**
	 * 判断该产品是否为有效的
	 *
	 * @param mealId
	 * @return
	 */
	public boolean isMealEnabled(Long mealId);

	List<Meal> findMealByMealCodeId(String orgId, String mealCodeId, String mealCodeOrgId);

	/**
	 * 获取餐品列表
	 * （获取当天且是上架的餐品）
	 *
	 * @param orgId
	 * @return
	 */
	List<Meal> getMealList(String orgId, String time);

	/**
	 * 导入餐品信息
	 *
	 * @param ins
	 * @param orgId
	 * @return
	 */
	Map<String, Object> importMeal(InputStream ins, String orgId);

	String saveImportMeal(List<Meal> list, String userId) throws RuntimeException;

	List<WeekDate> getMealDate(Integer orgId);

	String getNextMealDate(Integer orgId,String date, int type);
}
