// ═══════════════════════════════════════════════════════════════
// Hook de dados · Recrutamento (processos) · TanStack Query
// ═══════════════════════════════════════════════════════════════
// Escopo global (app sem bundler). Registrado no index.html apos data.jsx.
//
// Fonte: Supabase via fetchRecrutamentoSupabase().
//
// Era LS-first (getProcessos() lia 'escalab_recrutamento'), e isso escondia o
// recrutamento inteiro de quem abria o app numa maquina nova: a tela montava
// antes do fetch do boot terminar, a query cacheava [] e nada invalidava
// ['recrutamento'] depois — entao a lista so aparecia se algo forcasse um
// refetch (trocar de aba, por exemplo). Em maquina com LS quente parecia so
// "demorar"; em maquina limpa nao aparecia nunca.

async function resolveRecrutamento() {
  if (typeof fetchRecrutamentoSupabase === 'function') {
    const lista = await fetchRecrutamentoSupabase();
    if (Array.isArray(lista)) return lista;
  }
  // Rede fora / sessao expirada: cai no ultimo cache local em vez de tela vazia.
  return (typeof getProcessos === 'function') ? getProcessos() : [];
}

function useRecrutamento() {
  const { useQuery } = ReactQuery;
  return useQuery({
    queryKey: ['recrutamento'],
    queryFn: resolveRecrutamento,
    staleTime: 300_000,
  });
}
