// services/order.service.ts import { get, post, put, del } from "./api"; import type { Order, CreateOrderPayload, UpdateOrderPayload, UpdateOrderStatusPayload, TransferOrderPayload, OrdersResponse, } from "../types/order"; export const orderService = { /** Get all orders (paginated) */ getAll: (params?: Record) => { const qs = params ? "?" + new URLSearchParams(params as Record).toString() : ""; return get(`orders${qs}`); }, /** Get order by ID */ getById: (id: string) => get(`orders/${id}`), /** Create new order */ create: (payload: CreateOrderPayload) => post("orders", payload), /** Update order metadata */ update: (id: string, payload: UpdateOrderPayload) => put(`orders/${id}`, payload), /** Update order status with optional reason */ updateStatus: (id: string, payload: UpdateOrderStatusPayload) => put(`orders/${id}/status`, payload), /** Transfer order to a different trip */ transfer: (id: string, payload: TransferOrderPayload) => put(`orders/${id}/transfer`, payload), /** Soft-delete an order */ delete: (id: string) => del(`orders/${id}`), /** Get archived orders */ getArchived: () => get("orders/archived"), };