package com.dora.service;

import com.dora.dto.AdminOrderDto;
import com.dora.dto.ApiResponse;

/**
 * 管理员订单管理服务接口
 */
public interface AdminOrderService {

    /**
     * 获取订单列表
     * @param request 查询请求
     * @return 订单列表响应
     */
    ApiResponse<AdminOrderDto.OrderListResponse> getOrderList(AdminOrderDto.OrderListRequest request);

    /**
     * 获取订单汇总
     * @param request 汇总请求
     * @return 订单汇总响应
     */
    ApiResponse<AdminOrderDto.OrderSummaryResponse> getOrderSummary(AdminOrderDto.OrderSummaryRequest request);

    /**
     * 获取订单详情
     * @param orderId 订单ID
     * @return 订单详情响应
     */
    ApiResponse<AdminOrderDto.OrderDetailResponse> getOrderDetail(Long orderId);

    /**
     * 更新订单状态
     * @param request 状态更新请求
     * @return 更新结果
     */
    ApiResponse<String> updateOrderStatus(AdminOrderDto.OrderStatusUpdateRequest request);

    /**
     * 获取会员套餐列表
     * @param request 查询请求
     * @return 套餐列表响应
     */
    ApiResponse<AdminOrderDto.MembershipPlanListResponse> getMembershipPlanList(AdminOrderDto.MembershipPlanListRequest request);

    /**
     * 创建会员套餐
     * @param request 创建请求
     * @return 创建结果
     */
    ApiResponse<String> createMembershipPlan(AdminOrderDto.MembershipPlanCreateRequest request);

    /**
     * 更新会员套餐
     * @param request 更新请求
     * @return 更新结果
     */
    ApiResponse<String> updateMembershipPlan(AdminOrderDto.MembershipPlanUpdateRequest request);

    /**
     * 删除会员套餐
     * @param id 套餐ID
     * @return 删除结果
     */
    ApiResponse<String> deleteMembershipPlan(Long id);

    /**
     * 获取套餐详情
     * @param id 套餐ID
     * @return 套餐详情响应
     */
    ApiResponse<AdminOrderDto.MembershipPlanDetailResponse> getMembershipPlanDetail(Long id);

    /**
     * 获取交易统计
     * @param request 统计请求
     * @return 交易统计响应
     */
    ApiResponse<AdminOrderDto.TransactionStatisticsResponse> getTransactionStatistics(AdminOrderDto.TransactionStatisticsRequest request);
}
