import { NextResponse } from "next/server";
import { getDbPool } from "@/db";
import { getSession, signSupportSession, SUPPORT_COOKIE, supportSessionCookie } from "@/lib/auth";

export const runtime = "nodejs";

export async function POST(_: Request, { params }: { params: Promise<{ tenantId: string }> }) {
  const session = await getSession();
  if (!session || session.role !== "capital_admin") return NextResponse.json({ error: "Sem permissão." }, { status: 403 });
  const { tenantId } = await params;
  const [rows] = await getDbPool().execute("SELECT id, name FROM tenants WHERE id = ? AND status = 'active' LIMIT 1", [tenantId]);
  const tenant = (rows as { id: string; name: string }[])[0];
  if (!tenant) return NextResponse.json({ error: "Cliente não encontrado ou inativo." }, { status: 404 });
  const response = NextResponse.json({ portalPath: "/cliente", tenant: { id: tenant.id, name: tenant.name }, expiresInMinutes: 60 });
  response.cookies.set(supportSessionCookie(signSupportSession(session, tenant.id)));
  return response;
}

export async function DELETE() {
  const response = NextResponse.json({ ok: true });
  response.cookies.set({ name: SUPPORT_COOKIE, value: "", path: "/", maxAge: 0 });
  return response;
}
