import { redirect } from "next/navigation";
import { apiFetch, getCurrentUser } from "@/lib/api";
import { getDict } from "@/lib/i18n";
import { KpiBoard, type Definition, type Measurement } from "@/components/KpiBoard";

export const dynamic = "force-dynamic";

export default async function KpiPage() {
  const user = await getCurrentUser();
  if (!user) redirect("/login");
  if (!user.permissions.includes("kpis.view")) redirect("/dashboard");
  const t = await getDict();

  const defs = await apiFetch<{ items: Definition[] }>("/api/kpis");
  const meas = await apiFetch<{ items: Measurement[] }>("/api/kpis/measurements");

  return (
    <KpiBoard
      initialDefinitions={defs.status === 200 ? defs.data?.items ?? [] : []}
      initialMeasurements={meas.status === 200 ? meas.data?.items ?? [] : []}
      canManage={user.permissions.includes("kpis.manage")}
      canApprove={user.permissions.includes("kpis.approve")}
    />
  );
}
