// ═══════════════════════════════════════════════════════════════
// Hook de dados · Movimentacoes (por tipo) · TanStack Query
// ═══════════════════════════════════════════════════════════════
// Escopo global (app sem bundler). Registrado no index.html apos data.jsx.
// Fonte: getMovSolicitacoes(tipo) (data.jsx, LS 'escalab_movimentacao' agrupado
// por tipo). queryKey inclui o tipo. LS-first (ver plano Treinamentos).

// Aguarda o fetch do Supabase antes de ler. Era sincrono e LS-first: numa
// maquina sem cache local a tela montava, a query cacheava [] e nada
// invalidava depois — a lista nunca aparecia (bug do Recrutamento, 21/07).
async function resolveMovimentacoes(tipo) {
  if (typeof fetchMovimentacoesSupabase === 'function') { try { await fetchMovimentacoesSupabase(); } catch {} }
  return (typeof getMovSolicitacoes === 'function') ? getMovSolicitacoes(tipo) : [];
}

function useMovimentacoes(tipo) {
  const { useQuery } = ReactQuery;
  return useQuery({ queryKey: ['movimentacoes', tipo], queryFn: () => resolveMovimentacoes(tipo), staleTime: 300_000 });
}
