Suporte / Chamados — Superadmin
Visão Geral
O superadmin visualiza e responde a todos os tickets de suporte abertos pelos tenants (admins) em /superadmin/tickets. Badge de não-lidos aparece no nav do SuperadminLayout.
Localização
- View:
frontend-react/src/views/superadmin/TicketsView.tsx - Componentes:
frontend-react/src/components/support/TicketDetailPanel.tsx— thread de mensagens + respostaCannedResponsesModal.tsx— respostas predefinidas
- Controller:
backend/src/superadmin/superadmin-support.controller.ts - Backend module:
backend/src/support/
API
| Método | Rota | Descrição |
|---|---|---|
GET | /api/superadmin/tickets | Lista tickets (paginado, filtros) |
GET | /api/superadmin/tickets/:id | Detalhe do ticket |
POST | /api/superadmin/tickets/:id/reply | Responder ticket |
PUT | /api/superadmin/tickets/:id/status | Mudar status |
Query Params (GET lista)
| Param | Valores | Descrição |
|---|---|---|
status | new / in_progress / resolved | Filtrar por status |
urgency | low / medium / high / critical | Filtrar por urgência |
category | bug / feature_request / help | Filtrar por categoria |
page | number | Paginação |
limit | number | Itens por página |
WebSocket
Namespace: /support Room superadmin: support:superadmin
| Evento | Direção | Payload |
|---|---|---|
newTicket | Server → client | Ticket recém-criado |
ticketUpdated | Server → client | Status/campos alterados |
replyAdded | Server → client | Nova mensagem na thread |
O superadmin entra automaticamente na room support:superadmin ao conectar.
TicketDetailPanel
Componente de painel lateral com:
- Thread cronológica de mensagens (usuário + superadmin)
- Input de resposta com envio via Enter
- Botão para abrir
CannedResponsesModal - Seletor de status inline
CannedResponsesModal
Modal com respostas predefinidas que podem ser inseridas no campo de resposta. Útil para perguntas frequentes.
Badge de Não-Lidos
SuperadminLayout mantém contagem de tickets com status: 'new' e exibe badge vermelho no item "Tickets" do nav. Atualizado via WebSocket em tempo real.