import { notFound } from "next/navigation";
import { BitacoraForm } from "@/components/bitacora/bitacora-form";
import { can } from "@/lib/permissions";
import { requireUser } from "@/lib/session";
import { getBitacoraHitoById } from "@/server/queries/bitacora";

export const dynamic = "force-dynamic";

export default async function EditBitacoraPage({
  params,
}: {
  params: Promise<{ id: string }>;
}) {
  const user = await requireUser();
  if (!can(user.role, "bitacora:manage")) notFound();

  const { id } = await params;
  const hito = await getBitacoraHitoById(id);
  if (!hito) notFound();

  return (
    <div className="space-y-6">
      <div className="space-y-1">
        <h2 className="text-2xl font-semibold tracking-tight">Editar hito</h2>
        <p className="text-sm text-muted-foreground">Actualiza el antecedente territorial sin perder el historial registrado.</p>
      </div>
      <BitacoraForm
        mode="edit"
        hito={{
          id: hito.id,
          titulo: hito.titulo,
          descripcion: hito.descripcion,
          fechaHito: hito.fechaHito,
          categoria: hito.categoria,
          estado: hito.estado,
          prioridad: hito.prioridad,
          organismo: hito.organismo,
          ubicacion: hito.ubicacion,
          responsable: hito.responsable,
          etiquetas: (hito.etiquetas as string[]) ?? [],
          destacado: hito.destacado,
          visiblePublico: hito.visiblePublico,
        }}
      />
    </div>
  );
}
