import { NextResponse } from "next/server"; import { desc, eq } from "drizzle-orm"; import { auth } from "@/app/(auth)/auth"; import { db } from "@/lib/db"; import { paymentOrder } from "@/lib/db/schema"; export async function GET() { try { const session = await auth(); if (!session?.user?.id) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } const orders = await db .select({ id: paymentOrder.id, provider: paymentOrder.provider, outTradeNo: paymentOrder.outTradeNo, tradeNo: paymentOrder.tradeNo, packageId: paymentOrder.packageId, points: paymentOrder.points, amountCents: paymentOrder.amountCents, currency: paymentOrder.currency, payType: paymentOrder.payType, status: paymentOrder.status, paidAt: paymentOrder.paidAt, createdAt: paymentOrder.createdAt, }) .from(paymentOrder) .where(eq(paymentOrder.userId, session.user.id)) .orderBy(desc(paymentOrder.createdAt)) .limit(200); return NextResponse.json({ orders: orders.map((order) => ({ ...order, amount: Number((order.amountCents / 100).toFixed(2)), })), }); } catch (error) { console.error("[Payment Orders API] Error:", error); return NextResponse.json({ error: "Failed to fetch payment orders" }, { status: 500 }); } }