package com.seer.teach.mall.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.seer.teach.common.PageListBean;
import com.seer.teach.mall.entity.OrderEntity;
import com.seer.teach.mall.request.OrderPageListReq;
import com.seer.teach.mall.response.OrderChildResp;
import com.seer.teach.mall.response.OrderResp;

public interface IOrderQueryService extends IService<OrderEntity> {

    /**
     * 获取订单详情
     * @param orderId 订单ID
     * @return 订单详情
     */
    OrderResp getOrderByOrderId(Integer orderId);

    /**
     * 获取订单详情
     * @param orderId 订单ID
     * @return 订单详情
     */
    OrderResp getOrderDetail(Integer orderId);

    /**
     * 获取子订单详情
     * @param childOrderId 子订单ID
     * @return 子订单详情
     */
    OrderResp myOrderChildDetail(Integer childOrderId);

    /**
     * 获取子订单详情
     *
     * @param childOrderId 子订单ID
     * @return 子订单详情
     */
    OrderChildResp getOrderChildDetail(Integer childOrderId);

    /**
     * 获取订单分页列表
     * @param params 订单分页查询参数
     *               订单分页查询参数对象，包含分页参数和查询条件
     * @param userId 用户ID
     * @param deliveryUserId 配送员ID
     * @return 订单分页列表
     */
    PageListBean<OrderResp> getOrderPage(OrderPageListReq params, Integer userId, Integer deliveryUserId);

    /**
     * 获取子订单分页列表
     *
     * @param params 子订单分页查询参数
     * @return 子订单分页列表
     */
    PageListBean<OrderChildResp> getOrderChildrenPage(OrderPageListReq params);
}