{
  "id": "enum-internshipcancellationrequeststatus",
  "title": "Enum — InternshipCancellationRequestStatus",
  "description": "Ciclo do pedido de cancelamento de estágio formalizado.",
  "type": "enum-reference",
  "status": "implemented",
  "visibility": "public",
  "tags": [
    "sge/enums",
    "sge/cancelamento"
  ],
  "related": [
    "migration-21-internship-cancellation-requests"
  ],
  "sourceRefs": [
    "https://github.com/sge-suite/sge/blob/master/app/Enums/InternshipCancellationRequestStatus.php",
    "https://github.com/sge-suite/sge/blob/master/tests/Unit/Enums/InternshipCancellationRequestStatusTest.php"
  ],
  "authors": [],
  "updated": null,
  "diagram": null,
  "body": "> [!success] Estado\n> A classe e os testes unitários já existem em `app/Enums/InternshipCancellationRequestStatus.php`. O cast em `InternshipCancellationRequest` e a Migration 21 já existem; guardas de transição e efeitos da decisão continuam planejados.\n\n| Case | Valor | Rótulo |\n| --- | --- | --- |\n| `Submitted` | `submitted` | Enviada |\n| `UnderReview` | `under_review` | Em análise |\n| `Approved` | `approved` | Aprovada |\n| `Rejected` | `rejected` | Recusada |\n| `Withdrawn` | `withdrawn` | Retirada pelo discente |\n\nO pedido nasce enviado porque motivo e estágio são obrigatórios. O Setor de Estágio inicia a análise e aprova ou recusa. O discente pode retirar somente antes da decisão. Estados finais não são editáveis nem apagados.\n\n## Checklist\n\n- [x] Criar enum, rótulos, `values()` e `options()`.\n- [x] Cobrir cases, valores, rótulos e opções com teste unitário.\n- [x] Adicionar cast no Model.\n- [ ] Implementar guardas de transição.\n- [ ] Testar concorrência entre retirada e decisão.",
  "sections": [
    {
      "id": "checklist",
      "level": 2,
      "title": "Checklist",
      "text": "- [x] Criar enum, rótulos, `values()` e `options()`. - [x] Cobrir cases, valores, rótulos e opções com teste unitário. - [x] Adicionar cast no Model. - [ ] Implementar guardas de transição. - [ ] Testar concorrência entre retirada e decisão.",
      "line": 14
    }
  ],
  "sourcePath": "content/enum-internshipcancellationrequeststatus.md",
  "visuals": [],
  "apiVersion": 1
}
