import { NextResponse } from "next/server";
import { db } from "@/db";
import { leads, dashboardMetrics, payments, monthlyConversions } from "@/db/schema";
import { asc } from "drizzle-orm";

export async function GET() {
  try {
    const [leadsData, metrics, paymentsData, conversions] = await Promise.all([
      db.select().from(leads).orderBy(asc(leads.createdAt)),
      db.select().from(dashboardMetrics),
      db.select().from(payments).orderBy(asc(payments.createdAt)),
      db.select().from(monthlyConversions).orderBy(asc(monthlyConversions.sortOrder)),
    ]);

    return NextResponse.json({
      leads: leadsData,
      metrics,
      payments: paymentsData,
      conversions,
    });
  } catch (error) {
    console.error("Dashboard error:", error);
    return NextResponse.json({ error: "Failed to fetch dashboard data" }, { status: 500 });
  }
}
