package com.ylx.order.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ylx.order.domain.dto.AdminOrderDispatchDTO;
import com.ylx.order.domain.dto.AdminOrderDispatchMerchantQueryDTO;
import com.ylx.order.domain.dto.AdminOrderQueryDTO;
import com.ylx.order.domain.vo.AdminOrderDetailVO;
import com.ylx.order.domain.vo.AdminOrderDispatchMerchantVO;
import com.ylx.order.domain.vo.AdminOrderPageVO;
import com.ylx.order.domain.vo.AdminOrderServiceCategoryVO;

import java.util.List;

public interface AdminOrderService {

    Page<AdminOrderPageVO> page(Page<AdminOrderPageVO> page, AdminOrderQueryDTO dto);

    Page<AdminOrderPageVO> recyclePage(Page<AdminOrderPageVO> page, AdminOrderQueryDTO dto);

    List<AdminOrderServiceCategoryVO> listServiceCategoryOptions();

    void deleteById(Long id);

    void restoreById(Long id);

    void applyRefund(Long id);

    AdminOrderDetailVO detail(Long id);

    List<AdminOrderDispatchMerchantVO> listDispatchMerchants(Long id, AdminOrderDispatchMerchantQueryDTO dto);

    /**
     * 派单
     *
     * @param id 订单ID
     * @param dto
     */
    void dispatch(Long id, AdminOrderDispatchDTO dto);
}
