import { NextRequest, NextResponse } from 'next/server' import { auth } from '@/auth' import { prisma } from '@/lib/prisma' import { createOrder } from '@/lib/razorpay' export async function POST(request: NextRequest) { try { const session = await auth() if (!session?.user?.id) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } const { orderId } = await request.json() // Get order details const order = await prisma.order.findUnique({ where: { id: orderId, userId: session.user.id, status: 'PENDING' }, include: { orderItems: { include: { product: true } } } }) if (!order) { return NextResponse.json({ error: 'Order not found' }, { status: 404 }) } // Create Razorpay order const razorpayOrder = await createOrder(order.total, order.id) // Update order with Razorpay order ID await prisma.order.update({ where: { id: order.id }, data: { razorpayOrderId: razorpayOrder.id } }) return NextResponse.json({ orderId: razorpayOrder.id, amount: razorpayOrder.amount, currency: razorpayOrder.currency, key: process.env.RAZORPAY_KEY_ID, }) } catch (error) { console.error('Error creating payment order:', error) return NextResponse.json( { error: 'Failed to create payment order' }, { status: 500 } ) } }