import { NextRequest, NextResponse } from 'next/server'; import { nocodbClient } from '@/api/nocodbClient'; /** * GET /api/admin/orders/[id] * Get single order by record ID */ export async function GET( request: NextRequest, { params }: { params: { id: string } } ) { try { const order = await nocodbClient.getOrderById(params.id); return NextResponse.json({ success: true, data: order, }); } catch (error) { console.error('Error fetching order:', error); return NextResponse.json( { success: false, error: error instanceof Error ? error.message : 'Failed to fetch order', }, { status: 500 } ); } } /** * PATCH /api/admin/orders/[id] * Update order fields (commonly used for status updates) */ export async function PATCH( request: NextRequest, { params }: { params: { id: string } } ) { try { const body = await request.json(); const updatedOrder = await nocodbClient.updateOrder(params.id, body); return NextResponse.json({ success: true, data: updatedOrder, }); } catch (error) { console.error('Error updating order:', error); return NextResponse.json( { success: false, error: error instanceof Error ? error.message : 'Failed to update order', }, { status: 500 } ); } } /** * DELETE /api/admin/orders/[id] * Delete/archive an order */ export async function DELETE( request: NextRequest, { params }: { params: { id: string } } ) { try { // Instead of actually deleting, update status to "cancelled" await nocodbClient.updateOrderStatus(params.id, 'cancelled'); return NextResponse.json({ success: true, message: 'Order cancelled successfully', }); } catch (error) { console.error('Error cancelling order:', error); return NextResponse.json( { success: false, error: error instanceof Error ? error.message : 'Failed to cancel order', }, { status: 500 } ); } }