import type { Metadata } from "next";
import { PERMISSIONS, resolveScope } from "@/lib/auth/permissions";
import { requireScope } from "@/server/auth/current-user";

export const metadata: Metadata = { title: "Dashboard" };

/**
 * Dashboard — Fase 1: confirma sesión y permisos efectivos.
 * KPIs, gráficos y actividad reciente se construyen en la Fase 11.
 */
export default async function AdminDashboardPage() {
  const { session, scope } = await requireScope("dashboard.read");
  const granted = [...session.permissions].sort();
  const leadScope = resolveScope(session.permissions, "leads.read");

  return (
    <div className="mx-auto max-w-5xl space-y-6">
      <header>
        <h1 className="font-display text-2xl font-bold md:text-3xl">Hola, {session.user.name}</h1>
        <p className="mt-1 text-sm text-chesco-text-muted">
          Rol: {session.user.roleName} · Dashboard {scope === "all" ? "global" : "personal"} ·
          Leads:{" "}
          {leadScope === "all" ? "todos" : leadScope === "own" ? "solo asignados" : "sin acceso"}
        </p>
      </header>

      <section className="rounded-chesco-lg border border-chesco-border bg-chesco-white p-6">
        <h2 className="font-display text-lg font-semibold">Fase 1 — base del proyecto</h2>
        <p className="mt-2 text-sm text-chesco-text-muted">
          Autenticación y permisos activos. Los KPIs y gráficos del dashboard llegan en la Fase 11.
        </p>
      </section>

      <section className="rounded-chesco-lg border border-chesco-border bg-chesco-white p-6">
        <h2 className="font-display text-lg font-semibold">
          Permisos efectivos ({granted.length})
        </h2>
        <ul className="mt-4 grid gap-2 text-sm sm:grid-cols-2">
          {granted.map((key) => (
            <li key={key} className="rounded-chesco-sm bg-chesco-soft-gray px-3 py-2">
              <code className="text-xs">{key}</code>
              <span className="block text-chesco-text-muted">
                {key in PERMISSIONS ? PERMISSIONS[key as keyof typeof PERMISSIONS].description : ""}
              </span>
            </li>
          ))}
        </ul>
      </section>
    </div>
  );
}
