{
  "id": "enum-internshiprequestcorrectionstatus",
  "title": "Enum — InternshipRequestCorrectionStatus",
  "description": "Ciclo de cada pendência devolvida na solicitação de estágio.",
  "type": "enum-reference",
  "status": "implemented",
  "visibility": "public",
  "tags": [
    "sge/enums",
    "sge/estagio",
    "sge/pendencias"
  ],
  "related": [
    "migration-base-04-activity-log",
    "migration-20-internship-request-corrections"
  ],
  "sourceRefs": [
    "https://github.com/sge-suite/sge/blob/master/app/Enums/InternshipRequestCorrectionStatus.php",
    "https://github.com/sge-suite/sge/blob/master/tests/Unit/Enums/InternshipRequestCorrectionStatusTest.php"
  ],
  "authors": [],
  "updated": null,
  "diagram": "enum-correction-status",
  "body": "> [!success] Estado\n> A classe e os testes unitários já existem. O cast em `InternshipRequestCorrection` e a Migration 20 já existem; o fluxo de análise ainda está planejado. Este enum controla a pendência; não substitui o status da solicitação nem o [`activity_log`](doc:migration-base-04-activity-log).\n\n## Contrato\n\n| Case | Valor persistido | Rótulo | Efeito |\n| --- | --- | --- | --- |\n| `Open` | `open` | Aberta | O discente pode editar exclusivamente as seções indicadas. |\n| `Responded` | `responded` | Respondida | O discente reenviou; a solicitação voltou à fila de análise. |\n| `Resolved` | `resolved` | Resolvida | O Setor aprovou os dados corrigidos e aplicou o resultado ao estágio quando houver. |\n| `Cancelled` | `cancelled` | Cancelada | A pendência perdeu objeto, por desistência ou encerramento do processo. |\n\n## Transições\n\n{{diagram:enum-correction-status}}\n\nSomente uma correção em `Open` pode existir por solicitação. Uma correção `Responded` permanece no histórico enquanto o Setor analisa; se ele devolver outra pendência, encerra a anterior conforme a decisão e abre uma nova, com sua própria mensagem e seções afetadas.\n\n## Checklist de implementação\n\n- [x] Criar enum string, rótulos, `options()` e `values()`.\n- [ ] Adicionar cast em `InternshipRequestCorrection`.\n- [x] Usar o valor inicial do enum na [migration de internship_request_corrections](doc:migration-20-internship-request-corrections).\n- [ ] Garantir por constraint/validação que só exista uma pendência aberta por solicitação.\n- [x] Testar cases, valores, rótulos e opções.\n- [ ] Testar devolução, reenvio, nova devolução, aprovação e desistência no fluxo de domínio.",
  "sections": [
    {
      "id": "contrato",
      "level": 2,
      "title": "Contrato",
      "text": "| Case | Valor persistido | Rótulo | Efeito | | --- | --- | --- | --- | | `Open` | `open` | Aberta | O discente pode editar exclusivamente as seções indicadas. | | `Responded` | `responded` | Respondida | O discente reenviou; a solicitação voltou à fila de análise. | | `Resolved` | `resolved` | Resolvida | O Setor aprovou os dados corrigidos e aplicou o resultado ao estágio quando houver. | | `Cancelled` | `cancelled` | Cancelada | A pendência perdeu objeto, por desistência ou encerramento do processo. |",
      "line": 4
    },
    {
      "id": "transicoes",
      "level": 2,
      "title": "Transições",
      "text": "Somente uma correção em `Open` pode existir por solicitação. Uma correção `Responded` permanece no histórico enquanto o Setor analisa; se ele devolver outra pendência, encerra a anterior conforme a decisão e abre uma nova, com sua própria mensagem e seções afetadas.",
      "line": 13
    },
    {
      "id": "checklist-de-implementacao",
      "level": 2,
      "title": "Checklist de implementação",
      "text": "- [x] Criar enum string, rótulos, `options()` e `values()`. - [ ] Adicionar cast em `InternshipRequestCorrection`. - [x] Usar o valor inicial do enum na [migration de internship_request_corrections](doc:migration-20-internship-request-corrections). - [ ] Garantir por constraint/validação que só exista uma pendência aberta por solicitação. - [x] Testar cases, valores, rótulos e opções. - [ ] Testar devolução, reenvio, nova devolução, aprovação e desistência no fluxo de domínio.",
      "line": 19
    }
  ],
  "sourcePath": "content/enum-internshiprequestcorrectionstatus.md",
  "visuals": [
    {
      "id": "enum-correction-status",
      "kind": "state",
      "title": "Ciclo da correção de solicitação",
      "description": "Estados de uma pendência aberta pelo Setor e respondida pelo discente.",
      "summary": "A correção fica Open até o reenvio do discente; depois pode ser Resolved pelo Setor ou Cancelled quando o processo é encerrado.",
      "renderMode": "mermaid",
      "api": "api/diagrams/enum-correction-status.json",
      "human": "diagrams/enum-correction-status.html"
    }
  ],
  "apiVersion": 1
}
