> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devmob.app.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Support Case Lifecycle

> Fluxo do chamado: abertura, triagem, mensagens, atribuição, resolução e satisfação.

Um SupportCase passa por abertura, triagem, atendimento e encerramento. O status indica quem precisa agir em cada momento.

## Status

```mermaid theme={null}
stateDiagram-v2
    [*] --> OPEN
    OPEN --> WAITING_SUPPORT: triagem ou resposta do cliente
    OPEN --> WAITING_CUSTOMER: suporte responde
    WAITING_SUPPORT --> WAITING_CUSTOMER: suporte responde
    WAITING_CUSTOMER --> WAITING_SUPPORT: cliente responde
    WAITING_SUPPORT --> RESOLVED: resolução
    WAITING_CUSTOMER --> RESOLVED: resolução
    RESOLVED --> CLOSED: fechamento
    OPEN --> CANCELED: cancelamento
    WAITING_SUPPORT --> CANCELED: cancelamento
    WAITING_CUSTOMER --> CANCELED: cancelamento
    CLOSED --> [*]
    CANCELED --> [*]
```

| Status             | Descrição                                                        |
| ------------------ | ---------------------------------------------------------------- |
| `OPEN`             | Chamado criado e aguardando triagem.                             |
| `WAITING_SUPPORT`  | Solicitante aguarda resposta do atendimento.                     |
| `WAITING_CUSTOMER` | Atendimento aguarda resposta do solicitante.                     |
| `RESOLVED`         | Chamado resolvido, ainda elegível para fechamento ou satisfação. |
| `CLOSED`           | Chamado encerrado.                                               |
| `CANCELED`         | Chamado cancelado.                                               |

## Fluxo

```mermaid theme={null}
flowchart TD
    OPEN["Usuário ou sistema abre chamado"] --> TRIAGE["Atendimento faz triagem"]
    TRIAGE --> ASSIGN["Responsável ou fila é definido"]
    ASSIGN --> TALK["Participantes trocam mensagens"]
    TALK --> RESOLVE["Atendimento resolve"]
    RESOLVE --> RATE["Solicitante pode avaliar"]
    RATE --> CLOSE["Chamado é fechado"]
```

## Etapas

| Etapa            | Ator                                        | Momento                                    | Efeito                                                              |
| ---------------- | ------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------- |
| Abertura         | Passageiro, operador, BackOffice ou sistema | Quando existe uma solicitação ou incidente | Cria chamado com escopo, assunto, descrição e contexto relacionado. |
| Triagem          | Atendimento autorizado                      | Após abertura                              | Define categoria, prioridade e responsável inicial.                 |
| Atribuição       | Atendimento autorizado                      | Sempre que responsável ou fila mudar       | Atualiza responsável atual e registra histórico de atribuição.      |
| Mensagem pública | Solicitante ou atendimento                  | Durante a conversa                         | Mensagem fica visível para as partes do chamado.                    |
| Mensagem interna | Atendimento autorizado                      | Durante análise interna                    | Mensagem fica restrita ao time autorizado.                          |
| Anexo            | Autor da mensagem ou atendimento            | Ao enviar evidência                        | Arquivo fica ligado ao chamado ou à mensagem.                       |
| Resolução        | Atendimento autorizado                      | Quando há resposta final                   | Status muda para `RESOLVED` e `resolvedAt` é preenchido.            |
| Fechamento       | Atendimento ou regra operacional            | Depois da resolução                        | Status muda para `CLOSED` e `closedAt` é preenchido.                |
| Satisfação       | Solicitante                                 | Após resolução ou fechamento               | Registra nota e comentário sobre o atendimento.                     |

## Regras

* O código do chamado deve ser legível para atendimento e usuário final.
* O escopo orienta a permissão de leitura e escrita.
* O responsável atual não substitui o histórico de atribuições.
* Mensagens e anexos não devem ser apagados quando o chamado é removido logicamente.
* Chamado criado a partir de TripReview deve manter o vínculo com a avaliação e com o Order relacionado.
* Chamado resolvido pode receber apenas uma avaliação de satisfação.

Veja a modelagem em [SupportCase](/data-modelling/support/support-case).
