{
  "id": "enum-generateddocumentorigin",
  "title": "Enum — GeneratedDocumentOrigin",
  "description": "Origem do documento registrado no processo de estágio.",
  "type": "enum-reference",
  "status": "implemented",
  "visibility": "public",
  "tags": [
    "sge/enums",
    "sge/documentos"
  ],
  "related": [
    "migration-16-generated-documents"
  ],
  "sourceRefs": [
    "https://github.com/sge-suite/sge/blob/master/app/Enums/GeneratedDocumentOrigin.php",
    "https://github.com/sge-suite/sge/blob/master/tests/Unit/Enums/GeneratedDocumentOriginTest.php"
  ],
  "authors": [],
  "updated": null,
  "diagram": null,
  "body": "> [!success] Estado\n> Implementado em `app/Enums/GeneratedDocumentOrigin.php`. A Migration 16 e o cast em `GeneratedDocument` já usam este enum; geração e associação no fluxo ainda serão implementadas.\n\n## Contrato\n\n| Case            | Valor persistido | Rótulo           | Regra                                                              |\n| --------------- | ---------------- | ---------------- | ------------------------------------------------------------------ |\n| `SGE`           | `sge`            | SGE              | Documento gerado pelo sistema, com template e snapshot da geração. |\n| `GrantingParty` | `granting_party` | Parte concedente | Documento gerado pela concedente; registra apenas sua existência.  |\n\nPara documentos de origem `granting_party`, `template_version_id` é nulo e não há upload ou armazenamento de PDF, DOCX ou documento assinado. Templates DOCX do SGE são armazenados separadamente.\n\n## Checklist de implementação\n\n- [x] Criar enum string e rótulos no código.\n- [x] Implementar `options()` e `values()`.\n- [x] Cobrir cases, valores, rótulos e opções com teste unitário.\n- [ ] Adicionar cast em `GeneratedDocument`.\n- [x] Usar o enum na [migration de generated_documents](doc:migration-16-generated-documents).\n- [ ] Validar `template_version_id` nulo para `granting_party`.\n- [ ] Impedir upload/armazenamento de PDF ou DOCX fornecido pela concedente.\n- [ ] Testar as combinações de origem, tipo e status na integração documental.",
  "sections": [
    {
      "id": "contrato",
      "level": 2,
      "title": "Contrato",
      "text": "| Case            | Valor persistido | Rótulo           | Regra                                                              | | --------------- | ---------------- | ---------------- | ------------------------------------------------------------------ | | `SGE`           | `sge`            | SGE              | Documento gerado pelo sistema, com template e snapshot da geração. | | `GrantingParty` | `granting_party` | Parte concedente | Documento gerado pela concedente; registra apenas sua existência.  |  Para documentos de origem `granting_party`, `template_version_id` é nulo e não há upload ou armazenamento de PDF, DOCX ou documento assinado. Templates DOCX do SGE são armazenados separadamente.",
      "line": 4
    },
    {
      "id": "checklist-de-implementacao",
      "level": 2,
      "title": "Checklist de implementação",
      "text": "- [x] Criar enum string e rótulos no código. - [x] Implementar `options()` e `values()`. - [x] Cobrir cases, valores, rótulos e opções com teste unitário. - [ ] Adicionar cast em `GeneratedDocument`. - [x] Usar o enum na [migration de generated_documents](doc:migration-16-generated-documents). - [ ] Validar `template_version_id` nulo para `granting_party`. - [ ] Impedir upload/armazenamento de PDF ou DOCX fornecido pela concedente. - [ ] Testar as combinações de origem, tipo e status na integração documental.",
      "line": 13
    }
  ],
  "sourcePath": "content/enum-generateddocumentorigin.md",
  "visuals": [],
  "apiVersion": 1
}
