import { NextResponse } from "next/server"; import { prisma } from "@/lib/prisma"; import { auth } from "@/auth"; export async function GET() { try { const session = await auth(); if (!session?.user?.id) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } const userId = session.user.id; const traceFilter = { userId }; const childFilter = { trace: { userId } }; const [totalTraces, totalSpans, totalDecisions, totalEvents] = await Promise.all([ prisma.trace.count({ where: traceFilter }), prisma.span.count({ where: childFilter }), prisma.decisionPoint.count({ where: childFilter }), prisma.event.count({ where: childFilter }), ]); return NextResponse.json( { totalTraces, totalSpans, totalDecisions, totalEvents }, { status: 200 } ); } catch (error) { console.error("Error fetching stats:", error); return NextResponse.json( { error: "Internal server error" }, { status: 500 } ); } }