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

import com.bonus.canteen.core.common.page.PageDTO;
import com.bonus.canteen.core.common.page.PageVO;
import com.bonus.canteen.core.order.common.dto.OrderPreBookQueryDTO;
import com.bonus.canteen.core.order.common.model.OrderRefund;
import com.bonus.canteen.core.order.common.vo.OrderPreBookVO;
import com.bonus.canteen.core.order.deprecated.dto.OrderDetailSumGetDTO;
import com.bonus.canteen.core.order.deprecated.vo.OrderDetailSumGetVO;
import com.bonus.canteen.core.order.web.dto.OrderDeliveryDetailDTO;
import com.bonus.canteen.core.order.web.dto.OrderDetailWebDTO;
import com.bonus.canteen.core.order.web.dto.OrderRefundWebDTO;
import com.bonus.canteen.core.order.web.dto.OrderUserPermissionDTO;
import com.bonus.canteen.core.order.web.vo.*;
import com.bonus.canteen.core.pay.api.vo.UnifyPaySelectVO;

public interface OrderWebBusiness {
   void orderWriteOffWeb(Long orderId);
//
//   void goodsUpdateStatusById(OrdPartWriteOffDTO ordDTO);

   UnifyPaySelectVO orderSyncPayState(Long orderId);

   OrderRefund orderSyncRefundState(Long orderRefundId);

   OrderInfoWebVO getOrderInfo(Long orderId);

   PageVO<OrderListWebVO> queryOrderInfoWebByPage(PageDTO page, OrderDetailWebDTO param);

   PageVO<OrderDeliveryDetailVO> queryOrderDeliveryDetailByPage(PageDTO page, OrderDeliveryDetailDTO deliveryDTO);

   PageVO<OrderDetailSumGetVO> queryOrderDetailSumGet(PageDTO page, OrderDetailSumGetDTO deliveryDTO);

   PageVO<OrderRefundWebVO> pageOrderRefundList(PageDTO page, OrderRefundWebDTO refundWebDTO);

   PageVO<OrderPreBookVO> queryPreBookPage(PageDTO page, OrderPreBookQueryDTO queryDTO);
//
//   PageVO<OrderInfoBackfieldVO> queryOrderByGoodsId(PageDTO pageDTO, Long goodsDishesId, Long menuDetailId);
//
//   PageVO<OrderInfoBackfieldVO> queryOrderBackfieldPage(PageDTO pageDTO, OrderBackfieldSearchDTO orderBackfieldSearchDTO);

   OrderRefundWaitNumVO getRefundWaitNum();

   OrderUserPermissionDTO currentUserPermissions();
}
