import axios from "@/config/axios"; import type { GetOrdersResponse, GetOrderByIdResponse } from "../types/Types"; export interface GetOrdersParams { page?: number; limit?: number; search?: string; statuses?: string[]; paymentStatus?: string; } export interface ChangeOrderStatusParams { description?: string; } export interface RefundPaymentParams { description: string; } export const getOrders = async ( params?: GetOrdersParams ): Promise => { const queryParams = new URLSearchParams(); if (params?.page) { queryParams.append('page', params.page.toString()); } if (params?.limit) { queryParams.append('limit', params.limit.toString()); } if (params?.search) { queryParams.append('search', params.search); } if (params?.statuses && Array.isArray(params.statuses) && params.statuses.length > 0) { params.statuses.forEach((status) => { queryParams.append('statuses', status); }); } if (params?.paymentStatus) { queryParams.append('paymentStatus', params.paymentStatus); } const queryString = queryParams.toString(); const url = queryString ? `/admin/orders?${queryString}` : '/admin/orders'; const { data } = await axios.get(url); return data; }; export const getOrderById = async ( orderId: string ): Promise => { const { data } = await axios.get( `/admin/orders/${orderId}` ); return data; }; export const confirmOrder = async (orderId: string): Promise => { await axios.patch(`/admin/orders/${orderId}/confirm`); }; export const verifyCashPayment = async (paymentId: string): Promise => { await axios.post(`/admin/payments/verify-cash-method/${paymentId}`); }; export const changeOrderStatus = async ( orderId: string, status: string, params?: ChangeOrderStatusParams ): Promise => { await axios.patch(`/admin/orders/${orderId}/${status}`, params); }; export const refundPayment = async ( orderId: string, params: RefundPaymentParams ): Promise => { await axios.post(`/admin/orders/${orderId}/refund`, params); };