/* ============================================================================
 * FLUXO ZAP · Configuração de integração
 * ----------------------------------------------------------------------------
 * Edite este arquivo (ou injete via env no seu build) para apontar o frontend
 * para o seu backend real. Quando USE_MOCKS = true, o app roda 100% offline
 * com os dados de src/data.jsx — útil pra desenvolver/testar UI.
 * ========================================================================= */

const FluxoConfig = {
  // ── Modo de operação ──────────────────────────────────────────────────────
  // true  → usa fixtures de src/data.jsx (sem rede)
  // false → chama o backend real via fetch + WebSocket
  USE_MOCKS: false,

  // ── Endpoints ─────────────────────────────────────────────────────────────
  API_BASE_URL: '',
  WS_URL: (window.location.protocol === 'https:' ? 'wss://' : 'ws://') + window.location.host + '/events',

  // ── Auth ──────────────────────────────────────────────────────────────────
  // Bearer JWT é o padrão recomendado. Cookie HTTP-only também funciona —
  // basta deixar AUTH_TOKEN nulo e enviar credentials: 'include' no client.
  AUTH_TOKEN: () => localStorage.getItem('fluxo_token') || null,
  ON_AUTH_ERROR: () => {
    localStorage.removeItem('fluxo_token');
    localStorage.removeItem('fluxo_user');
    window.location.reload();
  },

  // ── Tenant / Workspace ────────────────────────────────────────────────────
  // Multi-tenant: identifica qual conta/loja está sendo operada. Vai no
  // header X-Workspace-Id em toda request.
  WORKSPACE_ID: () => localStorage.getItem('fluxo_workspace') || null,

  // ── Realtime ──────────────────────────────────────────────────────────────
  ENABLE_REALTIME: true,
  REALTIME_RECONNECT_MS: 3000,

  // ── Cache / Polling ───────────────────────────────────────────────────────
  POLL_DASHBOARD_MS: 30_000,   // dashboard se atualiza a cada 30s
  POLL_RADAR_MS: 60_000,       // radar varre 1× por minuto
  STALE_TIME_MS: 10_000,       // dados ficam "frescos" por 10s antes de refetch
};

window.FluxoConfig = FluxoConfig;
