import { redirect } from "next/navigation";
import { apiFetch, getCurrentUser } from "@/lib/api";
import { getDict } from "@/lib/i18n";
import { StructureBoard } from "@/components/StructureBoard";

export const dynamic = "force-dynamic";

export interface StructureUnit {
  id: number;
  unit_kind: "national" | "governorate";
  governorate_name: string | null;
  name_ar: string;
  formation_decision_ref: string;
  notes: string | null;
  open_positions: number;
  member_count: number | null;
  readiness_note: string | null;
}

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

  const unitsRes = await apiFetch<{ items: StructureUnit[] }>("/api/structure/units");

  return (
    <StructureBoard
      labels={{ title: t.structure.title, subtitle: t.structure.subtitle }}
      initialUnits={unitsRes.status === 200 ? (unitsRes.data?.items ?? []) : []}
      canManage={user.permissions.includes("structure.manage")}
    />
  );
}
