{"message":"Squad Hub Backend API","service":"hub-api","version":"1.0.0","endpoints":{"health":{"method":"GET","path":"/api/v1/health","description":"Health check completo (API, banco, memória, CPU) com score ponderado"},"healthComponents":{"method":"GET","path":"/api/v1/health/components","description":"Status individual de cada componente (api, database, memory, cpu)"},"unifiReportByHost":{"method":"GET","path":"/api/v1/unifi/reports/host/:hostname","description":"Relatório UniFi de um host em uma data específica (default = hoje)"},"unifiReportByPeriod":{"method":"GET","path":"/api/v1/unifi/reports/host/:hostname/period","description":"Relatório agregado por período (daily/monthly/quarterly/semiannual/annual)"},"unifiHostHistory":{"method":"GET","path":"/api/v1/unifi/reports/host/:hostname/history","description":"Histórico paginado de relatórios de um host com filtros de data"},"unifiHostMetricsSummary":{"method":"GET","path":"/api/v1/unifi/reports/host/:hostname/metrics/summary","description":"Resumo (médias) de latência, banda e perda de pacotes num período"},"unifiReportsByDate":{"method":"GET","path":"/api/v1/unifi/reports/date/:date","description":"Todos os relatórios gerados numa data"},"unifiReportsSearch":{"method":"GET","path":"/api/v1/unifi/reports/search","description":"Busca avançada de relatórios com múltiplos filtros (hostname, datas, ISP, link, paginação)"},"unifiReportsLatest":{"method":"GET","path":"/api/v1/unifi/reports/latest","description":"Relatórios mais recentes com metrics e periods aninhados"},"unifiHosts":{"method":"GET","path":"/api/v1/unifi/reports/hosts","description":"Lista de hosts únicos com data do último relatório e contagem total"},"unifiReportsStats":{"method":"GET","path":"/api/v1/unifi/reports/stats","description":"Estatísticas globais agregadas (totais de hosts, relatórios, métricas e períodos)"},"unifiReportsGenerate":{"method":"POST","path":"/api/v1/unifi/reports/generate","description":"Dispara geração manual (assíncrona) de relatório para uma data"},"unifiReportsDeleteByDate":{"method":"DELETE","path":"/api/v1/unifi/reports/date/:date","description":"Remove todos os relatórios de uma data (operação destrutiva, cascade em metrics/periods)"},"filesUpload":{"method":"POST","path":"/api/v1/files/upload","description":"Upload e processamento/consolidação de planilhas (CSV/XLSX/XLS/XML, até 50MB e 10 arquivos)"},"filesSupportedFormats":{"method":"GET","path":"/api/v1/files/supported-formats","description":"Lista formatos e limites suportados para upload"},"gnreProcess":{"method":"POST","path":"/api/v1/gnre/process-gnre","description":"Processa lote de NF-e (XML) e retorna ZIP com guias GNRE em lotes de 50 + planilhas auxiliares"},"deskChamados":{"method":"GET","path":"/api/v1/desk/chamados","description":"Lista paginada de chamados (espelho do Lakehouse) com filtros por cliente, operador, status, datas"},"deskChamadosStats":{"method":"GET","path":"/api/v1/desk/chamados/stats","description":"Estatísticas gerais dos chamados (total, abertos, fechados, outros, período)"},"deskChamadosStatsByOperador":{"method":"GET","path":"/api/v1/desk/chamados/stats/operador","description":"Estatísticas agrupadas por operador (suporta filtros de data)"},"deskChamadosStatsByCliente":{"method":"GET","path":"/api/v1/desk/chamados/stats/cliente","description":"Estatísticas agrupadas por cliente / fantasia"},"deskChamadosStatsByCategoria":{"method":"GET","path":"/api/v1/desk/chamados/stats/categoria","description":"Estatísticas agrupadas por categoria e subcategoria"},"deskChamadoByNumero":{"method":"GET","path":"/api/v1/desk/chamados/:numeroChamado","description":"Busca chamado pelo número"},"blacklistDomainsCheck":{"method":"GET","path":"/api/v1/blacklist/domains/check","description":"Verifica se um domínio está bloqueado em dbo.blacklist_domains"},"zenchatAccount":{"method":"POST","path":"/api/v1/zenchat/account","description":"Cria conta DEMO no Zenchat, cadastra contato em Brevo + Zenchat, notifica SDRs e dispara TrialStarted na Meta CAPI"},"zenchatMetaCapi":{"method":"POST","path":"/api/v1/zenchat/meta-capi","description":"Envia evento CompleteRegistration para Meta CAPI sem criar conta no Zenchat"},"marketingInitiateCheckout":{"method":"POST","path":"/api/v1/marketing/initiatecheckout","description":"Webhook Shopify checkouts/create → CAPI InitiateCheckout (requer X-Shopify-Hmac-Sha256)"},"marketingAddPaymentInfo":{"method":"POST","path":"/api/v1/marketing/addpaymentinfo","description":"Webhook Shopify checkouts/update → CAPI AddPaymentInfo (requer X-Shopify-Hmac-Sha256)"},"marketingPurchase":{"method":"POST","path":"/api/v1/marketing/purchase","description":"Webhook Shopify orders/create → CAPI Purchase (requer X-Shopify-Hmac-Sha256)"},"marketingAddToCart":{"method":"POST","path":"/api/v1/marketing/addtocart","description":"Webhook Shopify carts/create|update → CAPI AddToCart (requer X-Shopify-Hmac-Sha256)"},"marketingPageView":{"method":"POST","path":"/api/v1/marketing/pageview","description":"Evento de página visitada (theme da loja) → CAPI PageView"},"marketingViewContent":{"method":"POST","path":"/api/v1/marketing/viewcontent","description":"Evento de visualização de produto → CAPI ViewContent"},"marketingConversationStarted":{"method":"POST","path":"/api/v1/marketing/conversationstarted","description":"Início de conversa em chat (Zenchat/WhatsApp) → CAPI ConversationStarted"},"legacyPageView":{"method":"POST","path":"/api/v1/pageview","description":"[LEGADO] Alias de /api/v1/marketing/pageview — mantido por compatibilidade com frontend externo"},"legacyViewContent":{"method":"POST","path":"/api/v1/viewcontent","description":"[LEGADO] Alias de /api/v1/marketing/viewcontent — mantido por compatibilidade com frontend externo"},"legacyConversationStarted":{"method":"POST","path":"/api/v1/conversationstarted","description":"[LEGADO] Alias de /api/v1/marketing/conversationstarted — mantido por compatibilidade com frontend externo"}},"websocket":{"url":"wss://backend.zencore.com.br","description":"Canal WebSocket de broadcast (search_progress, new_lead, stats_update). Mesma porta do HTTP."}}