package com.bonus.canteen.core.order.android.business;

import com.bonus.canteen.core.common.page.PageDTO;
import com.bonus.canteen.core.common.page.PageVO;
import com.bonus.canteen.core.order.android.dto.OrderCallQueryDTO;
import com.bonus.canteen.core.order.android.dto.OrderDishesUpdateDTO;
import com.bonus.canteen.core.order.android.dto.OrderSignInAndroidDTO;
import com.bonus.canteen.core.order.android.dto.OrderTakeAndroidDTO;
import com.bonus.canteen.core.order.android.vo.OrderAndroidSignInVO;
import com.bonus.canteen.core.order.android.vo.OrderCallListVO;
import com.bonus.canteen.core.order.android.vo.OrderDetailAndroidVO;
import com.bonus.canteen.core.order.android.vo.OrderTakeAndroidVO;
import com.bonus.canteen.core.order.common.model.OrderInfo;
import com.bonus.canteen.core.order.deprecated.dto.OrdCallUpdateDTO;

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

public interface OrderDishesAndroidBusiness {

   void initOrderMealCode(OrderInfo orderInfo);

   void didUpdateDishesState(Long orderId, Integer dishesStateBeforeUpdated);

   void fillDetailMakingPartComplete(Long orderId, Integer dishesState, List<OrderDetailAndroidVO> orderDetailList);

   OrderAndroidSignInVO orderSignIn(OrderSignInAndroidDTO param);

   OrderTakeAndroidVO custTakeMeal(OrderTakeAndroidDTO takeAndroidDTO);

   void orderUpdateDishesState(OrderDishesUpdateDTO dishesUpdateDTO);

   void orderUpdateDishesState(List<Long> orderIds, Integer dishesState);

   PageVO<OrderCallListVO> queryOrderCallPage(PageDTO pageDTO, OrderCallQueryDTO queryDTO);

   @Deprecated
   void updateCallOrd(OrdCallUpdateDTO ordCallUpdateDTO);

}
