> ## 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.

# SupportCase

> Chamado de suporte aberto por passageiro, empresa, cooperativa ou BackOffice

O `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](/data-modelling/sales/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](/data-modelling/identity/customer), quando o chamado é do passageiro.
* Relaciona-se com [Organization](/data-modelling/tenant/organization), quando o chamado está no escopo de uma organização.
* Relaciona-se com [Company](/data-modelling/tenant/company), quando envolve uma empresa.
* Relaciona-se com [Cooperative](/data-modelling/tenant/cooperative), quando envolve uma cooperativa.
* Relaciona-se com [User](/data-modelling/identity/user) como usuário de abertura e atendente atual.
* Relaciona-se com [Order](/data-modelling/sales/order), quando o chamado envolve uma compra.
* Relaciona-se com [TripReview](/data-modelling/operations/trip-review), quando o chamado nasce de uma avaliação.
* Relaciona-se com [Ticket](/data-modelling/sales/ticket) por `relatedSalesTicketId`, quando o chamado envolve uma passagem.
* Relaciona-se com [Trip](/data-modelling/operations/trip), quando o chamado envolve uma viagem.
* Relaciona-se com [SupportCaseCategory](/data-modelling/support/support-case-category).
* Relaciona-se com múltiplos [SupportCaseMessage](/data-modelling/support/support-case-message).
* Relaciona-se com múltiplos [SupportCaseAttachment](/data-modelling/support/support-case-attachment).
* Relaciona-se com múltiplos [SupportCaseAssignment](/data-modelling/support/support-case-assignment).
* Relaciona-se com [SupportCaseSatisfactionRating](/data-modelling/support/support-case-satisfaction-rating) (1:1, opcional).

## Regras de Negócio

* `code` deve ser único e legível para atendimento e usuário final.
* `scopeType` define a superfície principal do chamado e orienta as permissões de leitura.
* `relatedTripReviewId` deve ser preenchido quando o passageiro usa o botão de contato a partir de uma avaliação.
* Quando `relatedTripReviewId` estiver preenchido, `relatedOrderId` deve apontar para o Order que deu elegibilidade para a review.
* `relatedSalesTicketId` referencia a passagem vendida quando o chamado envolve embarque, QR Code, cancelamento ou outra situação da viagem.
* `assignedToUserId` representa somente o responsável atual. O histórico fica em [SupportCaseAssignment](/data-modelling/support/support-case-assignment).
* Um chamado resolvido pode receber uma avaliação única em [SupportCaseSatisfactionRating](/data-modelling/support/support-case-satisfaction-rating).
* 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                                           |

## Example

```json theme={null}
{
  "supportCaseId": "0197f150-40d6-7c1a-bdf2-c5884e07d401",
  "customerId": "0197a7f6-4d36-7c0a-a7cb-54fcb33a3148",
  "organizationId": "0197a801-1690-7590-b3cf-19599b9be3e4",
  "companyId": "0197a801-6a42-79aa-9e56-d3c85148c0fa",
  "cooperativeId": "0197a800-24e6-76a2-90ed-ff0f6fba7b0c",
  "openedByUserId": "0197a7f6-2c4d-74ae-b89b-9d36d9c341f2",
  "assignedToUserId": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "categoryId": "0197f151-0664-7b11-8a9c-a93acaf1ee22",
  "relatedOrderId": "0197a813-0fb9-7d42-9c81-50c0f6d9ae5a",
  "relatedTripReviewId": "0197a815-0fcf-704b-b703-f460b25515d4",
  "relatedSalesTicketId": "0197a813-a9a6-7752-8173-d40a2a2d0ef0",
  "relatedTripId": "0197a80f-2d8f-7710-b243-b67fb477a1c0",
  "code": "SUP-20260704-0001",
  "scopeType": "CUSTOMER",
  "priority": "MEDIUM",
  "status": "WAITING_SUPPORT",
  "subject": "Contato sobre avaliação da viagem",
  "description": "Passageiro solicitou atendimento a partir da avaliação enviada.",
  "resolvedAt": null,
  "closedAt": null,
  "createdAt": "2026-07-04T10:15:00.000Z",
  "updatedAt": "2026-07-04T10:20:00.000Z",
  "deletedAt": null
}
```
