Suporte
Visão Geral
Admins podem abrir chamados de suporte para o time PopinaFlow a partir de /t/:slug/admin/support. Os tickets ficam visíveis ao superadmin e as respostas chegam em tempo real via WebSocket.
Localização
- View:
frontend-react/src/views/admin/SupportView.tsx - Modal:
frontend-react/src/components/support/CreateTicketModal.tsx - Backend module:
backend/src/support/ - Guard:
backend/src/common/guards/optional-jwt-auth.guard.ts
API
| Método | Rota | Descrição |
|---|---|---|
GET | /api/support/tickets/mine | Lista tickets do usuário autenticado |
POST | /api/support/tickets | Cria novo ticket |
POST | /api/support/tickets/:id/reply | Responde a um ticket |
GET | /api/support/tickets/track/:token | Rastreia ticket por token (guest) |
Nota:
POST /api/support/ticketsusaOptionalJwtAuthGuard— funciona para usuários autenticados e guests. Guests recebem umtrackingTokenna resposta para acompanhar o ticket.
CreateTicketModal — Campos
| Campo | Obrigatório | Valores |
|---|---|---|
title | Sim | Texto livre |
description | Sim | Texto livre (detalhes do problema) |
category | Sim | bug / feature_request / help |
urgency | Sim | low / medium / high / critical |
Ciclo de Vida do Status
new → in_progress → resolved| Status | Descrição |
|---|---|
new | Ticket recém-aberto, aguardando triagem |
in_progress | Superadmin está trabalhando |
resolved | Chamado encerrado |
WebSocket
Namespace: /support Room do usuário: support:user:{userId}
O admin recebe eventos replyAdded e ticketUpdated em tempo real quando o superadmin responde.
Rastreamento Guest
Tickets criados sem autenticação recebem um trackingToken único. O token pode ser usado em:
GET /api/support/tickets/track/:tokenOu via frontend: /support/tickets/track/:token