import { createSbServer } from "@/lib/supabaseServer";
import { redirect, notFound } from "next/navigation";
import NextDynamic from "next/dynamic";

export const dynamic = "force-dynamic";

const ModifierAvenantPageClient = NextDynamic<any>(
  () => import("@/components/staff/ModifierAvenantPageClient"),
  { ssr: false }
);

export default async function ModifierAvenantPage({
  params,
}: {
  params: Promise<{ id: string }>;
}) {
  const { id } = await params;
  const sb = createSbServer();
  const { data: { user } } = await sb.auth.getUser();

  if (!user) {
    redirect("/login");
  }

  const { data: me } = await sb
    .from("staff_users")
    .select("is_staff")
    .eq("user_id", user.id)
    .maybeSingle();

  const isStaff = !!me?.is_staff;
  if (!isStaff) {
    redirect("/dashboard");
  }

  // Récupérer l'avenant avec les informations du contrat
  const { data: avenant, error } = await sb
    .from("avenants")
    .select(`
      *,
      cddu_contracts (
        *,
        organizations (
          id,
          name
        ),
        salaries (
          id,
          prenom,
          nom,
          adresse_mail
        )
      )
    `)
    .eq("id", id)
    .single();

  if (error || !avenant) {
    console.error("Erreur ou avenant non trouvé:", error);
    notFound();
  }

  // Vérifier que l'avenant est modifiable (seulement les brouillons)
  if (avenant.statut !== "draft") {
    return (
      <main className="p-6">
        <div className="max-w-2xl mx-auto">
          <h1 className="text-lg font-semibold text-red-600">Modification impossible</h1>
          <p className="text-sm text-slate-600 mt-2">
            Seuls les avenants en brouillon peuvent être modifiés.
          </p>
          <button
            onClick={() => redirect(`/staff/avenants/${id}`)}
            className="mt-4 px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700"
          >
            Retour à l'avenant
          </button>
        </div>
      </main>
    );
  }

  return (
    <main className="p-6">
      <ModifierAvenantPageClient avenant={avenant} />
    </main>
  );
}
