11 Commits

Author SHA1 Message Date
c5b377e788 feat: update queries and client dashboard improvements
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 13:28:53 -04:00
root
8641100a18 feat: per-user panel permissions system
Replace hardcoded role-based access with granular per-panel permissions.
Each user can now be assigned any combination of 6 panels (Corporate, BI
Executive, Clientes, Providers, Usuarios, Meu Dashboard) regardless of
their role. Existing users are auto-migrated with defaults based on role.

- Add src/panels.js with panel registry and default permissions
- Add permissions column to SQLite + migration for existing users
- Add requirePermission() middleware, replace requireRole on all routes
- Dynamic nav in buildHeader based on user permissions
- Permissions checkbox UI in admin panel with role presets
- Anti-lockout: users cannot remove 'usuarios' from themselves

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 17:27:36 -05:00
root
8689b7ec0d feat: skeleton shimmer for Client 360 + fix Chart.js event error on BI
- Add skeleton loading to admin-cliente.js: profile card, 12 hero KPIs,
  health/risk/netting values, 9 charts, transaction table
- Fix BI Chart.js handleEvent crash: use absolute-positioned skeleton
  overlays instead of display:none on canvases
- Fix setPreset null pointer on preset button querySelector

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 10:02:37 -05:00
root
844f931076 feat: BI-CCC evolution — 6-phase platform upgrade (45→85 maturity)
Phase 1: Refactor queries.js (1787 lines) into domain modules with facade pattern
  - src/queries/{helpers,payin,payout,corporate,bi,client,provider,compliance}.queries.js
  - New provider performance + compliance data layer queries
  - Health check endpoint (GET /health)

Phase 2: Provider Performance Dashboard (src/admin-providers.js)
  - Hero cards, sortable tables, Chart.js charts, date range filter
  - API routes: /admin/api/providers, /admin/api/providers/failed, /admin/api/providers/trend

Phase 3: Excel Export (exceljs)
  - CambioReal-branded exports for BI, clients, providers, transactions
  - Export buttons added to BI and Client 360 dashboards

Phase 4: Alert System (node-cron + nodemailer)
  - 5 alert rules: volume spike, spread anomaly, large tx, failed tx spike, provider inactivity
  - SQLite alerts table, bell icon UI with acknowledge workflow
  - Email notifications via SMTP

Phase 5: Enhanced Analytics
  - Churn prediction: weighted RFM model (src/services/churn-predictor.js)
  - Volume forecasting: exponential smoothing with confidence bands (src/services/forecast.js)
  - Forecast chart in BI dashboard, churn risk in Client 360

Phase 6: SQLite Analytics Store (ETL)
  - src/db-analytics.js: daily_metrics, client_health_daily, monthly_revenue tables
  - src/etl/daily-sync.js: MySQL RDS → SQLite daily sync at 1 AM + 90-day backfill
  - src/etl/data-quality.js: post-sync validation (row counts, reconciliation)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 20:22:23 -05:00
root
a76ab30730 feat: integra dados de merchant/checkout no Client 360
Merchants (via br_cb_empresas) agora mostram dados de CambioCheckout:
- fetchMerchantProfile detecta merchant e retorna lifetime checkout stats
- fetchMerchantData retorna KPIs, monthly, top payers e transacoes por periodo
- fetchTopClients inclui checkout volume (merchants sobem no ranking)
- fetchClientSearch inclui merchants nos resultados de busca
- Profile/data endpoints fazem merge automatico dos dados checkout
- UI: badge MERCHANT roxo, 6 hero cards checkout, chart mensal, top 10 payers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 16:47:11 -05:00
root
600a8044c2 fix: closing script tag duplo-escapado em admin-cliente (<\\/script> → <\/script>)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 16:01:21 -05:00
root
6c925db42b fix: busca server-side + top 20 clientes (antes carregava 261K clientes no browser)
- fetchClientList separado em fetchTopClients (top 20 LIMIT) e fetchClientSearch (LIKE server-side)
- Novos endpoints: /admin/api/clientes/top e /admin/api/clientes/search?q=
- Cards clicaveis com data-id/data-nome + event delegation (sem inline onclick)
- Busca agora faz fetch server-side com debounce 300ms (min 2 chars)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:56:22 -05:00
root
ef80c4185d feat: top 20 clientes por volume com cards clicaveis agrupados por faixa
- fetchClientList agora retorna volume USD, ops, meses ativos e ultima op
- Top 20 clientes exibidos como cards clicaveis na tela inicial
- Agrupados em 3 faixas: Alto Volume, Medio Volume, Menor Volume
- Cards mostram volume total, ops e media mensal
- Click no card carrega o dashboard 360 do cliente

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:47:36 -05:00
root
e57aaef3e7 fix: corrige template expressions escapadas em admin-cliente (CSS/header/footer ausentes)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:42:38 -05:00
root
175e21b2d4 feat: BI estrategico — cohort retention, revenue expansion, cross-sell, maturity + receita em USD
- Cohort retention heatmap com matriz de retencao por mes de aquisicao
- Revenue expansion/contraction waterfall (new/expansion/stable/contraction/churned)
- Cross-sell analysis (CambioPay only vs CambioCheckout only vs Both)
- Client maturity segmentation (new/growing/mature/declining)
- Nova query fetchBIStrategic + endpoint /admin/api/bi/strategic
- Todas receitas de spread convertidas de BRL para USD em todas as queries
- Labels e formatacao atualizados para USD em admin-bi e admin-cliente

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:36:39 -05:00
root
4595be0b07 feat: dashboard cliente 360 — visao completa por cliente com KPIs, timeline, fluxos e transacoes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 13:16:26 -05:00