import { NextResponse } from "next/server"
import { prisma } from "@/server/db"
import { requireTenantAccess } from "@/server/auth"

export async function GET(
  _req: Request,
  context: { params: Promise<{ tenantId: string }> }
) {
  const { tenantId } = await context.params

  try {
    await requireTenantAccess(tenantId)

    const domains = await prisma.domain.findMany({
      where: { tenantId },
      orderBy: { createdAt: "desc" },
    })

    return NextResponse.json({ domains })
  } catch (e: unknown) {
    const msg = e instanceof Error ? e.message : String(e ?? "")
    const status =
      msg === "UNAUTHORIZED" ? 401 :
      msg.startsWith("FORBIDDEN") ? 403 :
      500

    return NextResponse.json({ error: msg }, { status })
  }
}
