import { useQuery } from '@tanstack/react-query'
import {
  listAuditEvents,
  type AuditEventsFilter,
  type AuditEventsPage,
} from '@/api/audit'

export const auditEventsQueryKey = (filter: AuditEventsFilter) =>
  ['audit', 'events', filter] as const

/**
 * Hook TanStack Query para `listAuditEvents`.
 *
 * Cursor pagination: el caller pasa `cursor` (o `undefined` para la primera
 * página) dentro de `filter`. Cada "página" es una query independiente —
 * NO usamos `useInfiniteQuery` porque el UI usa un botón "Cargar más" que
 * simplemente re-consulta con el último `nextCursor`.
 */
export function useAuditEvents(filter: AuditEventsFilter) {
  return useQuery<AuditEventsPage>({
    queryKey: auditEventsQueryKey(filter),
    queryFn: () => listAuditEvents(filter),
    staleTime: 15_000,
  })
}
