import Link from "next/link";
import { Button } from "@/components/ui/button";

export function BitacoraPagination({
  page,
  pageCount,
  pageSize,
  total,
  query,
}: {
  page: number;
  pageCount: number;
  pageSize: number;
  total: number;
  query: Record<string, string | undefined>;
}) {
  function href(nextPage: number) {
    const params = new URLSearchParams();
    for (const [key, value] of Object.entries(query)) {
      if (value) params.set(key, value);
    }
    params.set("page", String(nextPage));
    return `/bitacora-territorial?${params.toString()}`;
  }

  const from = total === 0 ? 0 : (page - 1) * pageSize + 1;
  const to = Math.min(page * pageSize, total);

  return (
    <div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
      <p className="text-sm text-muted-foreground">
        Mostrando {from}-{to} de {total} hitos · Página {page} de {pageCount}
      </p>
      <div className="flex gap-2">
        <Button asChild variant="outline" size="sm" aria-disabled={page <= 1}>
          <Link href={page <= 1 ? href(1) : href(page - 1)}>Anterior</Link>
        </Button>
        <Button asChild variant="outline" size="sm" aria-disabled={page >= pageCount}>
          <Link href={page >= pageCount ? href(pageCount) : href(page + 1)}>Siguiente</Link>
        </Button>
      </div>
    </div>
  );
}
