import { NextResponse } from "next/server" import { asc, eq } from "drizzle-orm" import { db } from "@/lib/db" import { tenants } from "@/lib/db/schema" import { getSessionUser } from "@/lib/session" import { toCsv } from "@/lib/db/admin-queries" export async function GET() { const user = await getSessionUser() if (!user) return NextResponse.json({ error: "Unauthorized" }, { status: 401 }) const rows = await db.query.tenants.findMany({ where: eq(tenants.user_id, user.id), with: { property: { columns: { name: true } }, unit: { columns: { unit_number: true } }, }, orderBy: asc(tenants.last_name), }) const csv = toCsv( ["First Name", "Last Name", "Email", "Phone", "Property", "Unit", "Status", "Move In Date", "Notes"], rows.map((t) => [ t.first_name ?? "", t.last_name ?? "", t.email ?? "", t.phone ?? "", t.property?.name ?? "", t.unit?.unit_number ?? "", t.status ?? "", t.move_in_date ?? "", t.notes ?? "", ]) ) return new NextResponse(csv, { headers: { "Content-Type": "text/csv; charset=utf-8", "Content-Disposition": 'attachment; filename="tenants.csv"', }, }) }