SupportCase representa um chamado de suporte aberto por passageiro, empresa, cooperativa ou BackOffice.
Campos
| Campo | Tipo | Descrição |
|---|---|---|
supportCaseId | UUID | Identificador único |
customerId | UUID? | Cliente/passageiro relacionado, quando aplicável |
organizationId | UUID? | Organização relacionada ao chamado |
companyId | UUID? | Empresa relacionada ao chamado |
cooperativeId | UUID? | Cooperativa relacionada ao chamado |
openedByUserId | UUID | Usuário que abriu o chamado |
assignedToUserId | UUID? | Usuário atualmente responsável pelo atendimento |
categoryId | UUID? | Categoria do chamado |
relatedOrderId | UUID? | Pedido relacionado, quando aplicável |
relatedTripReviewId | UUID? | Avaliação relacionada, quando o chamado nasce do botão de contato na revisão |
relatedSalesTicketId | UUID? | Passagem relacionada em Ticket, quando aplicável |
relatedTripId | UUID? | Viagem relacionada, quando aplicável |
code | String | Código legível único do chamado |
scopeType | SupportCaseScopeType | Escopo principal do chamado |
priority | SupportCasePriority | Prioridade operacional |
status | SupportCaseStatus | Status atual do chamado |
subject | String | Assunto curto do chamado |
description | String | Descrição inicial do problema |
resolvedAt | DateTime? | Data de resolução |
closedAt | DateTime? | Data de fechamento |
createdAt | DateTime | Data de criação |
updatedAt | DateTime | Data da última atualização |
deletedAt | DateTime? | Data de remoção lógica |
Relacionamentos
- Relaciona-se com Customer, quando o chamado é do passageiro.
- Relaciona-se com Organization, quando o chamado está no escopo de uma organização.
- Relaciona-se com Company, quando envolve uma empresa.
- Relaciona-se com Cooperative, quando envolve uma cooperativa.
- Relaciona-se com User como usuário de abertura e atendente atual.
- Relaciona-se com Order, quando o chamado envolve uma compra.
- Relaciona-se com TripReview, quando o chamado nasce de uma avaliação.
- Relaciona-se com Ticket por
relatedSalesTicketId, quando o chamado envolve uma passagem. - Relaciona-se com Trip, quando o chamado envolve uma viagem.
- Relaciona-se com SupportCaseCategory.
- Relaciona-se com múltiplos SupportCaseMessage.
- Relaciona-se com múltiplos SupportCaseAttachment.
- Relaciona-se com múltiplos SupportCaseAssignment.
- Relaciona-se com SupportCaseSatisfactionRating (1:1, opcional).
Regras de Negócio
codedeve ser único e legível para atendimento e usuário final.scopeTypedefine a superfície principal do chamado e orienta as permissões de leitura.relatedTripReviewIddeve ser preenchido quando o passageiro usa o botão de contato a partir de uma avaliação.- Quando
relatedTripReviewIdestiver preenchido,relatedOrderIddeve apontar para o Order que deu elegibilidade para a review. relatedSalesTicketIdreferencia a passagem vendida quando o chamado envolve embarque, QR Code, cancelamento ou outra situação da viagem.assignedToUserIdrepresenta somente o responsável atual. O histórico fica em SupportCaseAssignment.- Um chamado resolvido pode receber uma avaliação única em SupportCaseSatisfactionRating.
- Remoção lógica não deve apagar mensagens, anexos ou histórico. Esses registros devem permanecer para auditoria.
Enums
SupportCaseScopeType
| Valor | Descrição |
|---|---|
CUSTOMER | Chamado aberto por passageiro/cliente |
COMPANY | Chamado no escopo de uma empresa |
COOPERATIVE | Chamado no escopo de uma cooperativa |
BACKOFFICE | Chamado interno de BackOffice |
SupportCasePriority
| Valor | Descrição |
|---|---|
LOW | Baixa prioridade |
MEDIUM | Prioridade normal |
HIGH | Alta prioridade |
URGENT | Urgente |
SupportCaseStatus
| Valor | Descrição |
|---|---|
OPEN | Chamado aberto e aguardando triagem |
WAITING_CUSTOMER | Atendimento aguarda resposta do cliente |
WAITING_SUPPORT | Cliente aguarda resposta do suporte |
RESOLVED | Chamado resolvido, ainda elegível para fechamento/avaliação |
CLOSED | Chamado encerrado |
CANCELED | Chamado cancelado |