Skip to content

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étodoRotaDescrição
GET/api/support/tickets/mineLista tickets do usuário autenticado
POST/api/support/ticketsCria novo ticket
POST/api/support/tickets/:id/replyResponde a um ticket
GET/api/support/tickets/track/:tokenRastreia ticket por token (guest)

Nota: POST /api/support/tickets usa OptionalJwtAuthGuard — funciona para usuários autenticados e guests. Guests recebem um trackingToken na resposta para acompanhar o ticket.

CreateTicketModal — Campos

CampoObrigatórioValores
titleSimTexto livre
descriptionSimTexto livre (detalhes do problema)
categorySimbug / feature_request / help
urgencySimlow / medium / high / critical

Ciclo de Vida do Status

new → in_progress → resolved
StatusDescrição
newTicket recém-aberto, aguardando triagem
in_progressSuperadmin está trabalhando
resolvedChamado 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/:token

Ou via frontend: /support/tickets/track/:token

Relacionados

Lançado sob a licença MIT.