{
  "id": "enum-generateddocumenttype",
  "title": "Enum — GeneratedDocumentType",
  "description": "Tipos de documentos registrados no processo de estágio.",
  "type": "enum-reference",
  "status": "implemented",
  "visibility": "public",
  "tags": [
    "sge/enums",
    "sge/documentos"
  ],
  "related": [
    "enum-generateddocumentorigin",
    "enum-generateddocumentstatus",
    "migration-13-document-templates",
    "migration-16-generated-documents"
  ],
  "sourceRefs": [
    "https://github.com/sge-suite/sge/blob/master/app/Enums/GeneratedDocumentType.php",
    "https://github.com/sge-suite/sge/blob/master/tests/Unit/Enums/GeneratedDocumentTypeTest.php"
  ],
  "authors": [],
  "updated": null,
  "diagram": null,
  "body": "> [!info] Decisão\n> O catálogo tem três casos e é usado pelo cast de `DocumentTemplate`. O cast em `GeneratedDocument` e a Migration 16 já existem; a emissão no fluxo ainda está pendente.\n\n## Contrato\n\n| Case                     | Valor persistido          | Uso                                                        |\n| ------------------------ | ------------------------- | ---------------------------------------------------------- |\n| `Main`                   | `main`                    | TCE, rescisão e demais documentos principais/relacionados. |\n| `Addendum`               | `addendum`                | Aditivos.                                                  |\n| `OrientationCertificate` | `orientation_certificate` | Atestado de orientação.                                    |\n\nO tipo descreve a categoria do documento, não cada template. Templates continuam sendo registros separados, com versões próprias; portanto, novos templates não exigem novos cases neste enum.\n\nO atestado de orientação terá um template ativo administrado pelo setor de estágio. Esse template poderá ser versionado e será utilizado pelos coordenadores. A emissão do atestado apenas registra a geração, sem fluxo de assinatura.\n\n[`GeneratedDocumentOrigin`](doc:enum-generateddocumentorigin) descreve quem forneceu/gerou o documento e [`GeneratedDocumentStatus`](doc:enum-generateddocumentstatus) descreve o ciclo do registro.\n\n## Checklist de implementação\n\n- [x] Definir catálogo e nomes conforme a decisão aprovada.\n- [x] Definir que aditivo não terá entidade própria inicialmente.\n- [x] Criar enum string e rótulos.\n- [x] Implementar `options()` e `values()`.\n- [x] Adicionar cast em `DocumentTemplate`.\n- [x] Adicionar cast em `GeneratedDocument`.\n- [x] Usar o enum na [migration de generated_documents](doc:migration-16-generated-documents).\n- [x] Validar no Model as combinações de tipo, origem e status.\n- [x] Testar todos os cases, valores, opções, rótulos e conversão de valores.\n- [ ] Testar a geração do documento principal quando o fluxo documental for implementado.",
  "sections": [
    {
      "id": "contrato",
      "level": 2,
      "title": "Contrato",
      "text": "| Case                     | Valor persistido          | Uso                                                        | | ------------------------ | ------------------------- | ---------------------------------------------------------- | | `Main`                   | `main`                    | TCE, rescisão e demais documentos principais/relacionados. | | `Addendum`               | `addendum`                | Aditivos.                                                  | | `OrientationCertificate` | `orientation_certificate` | Atestado de orientação.                                    |  O tipo descreve a categoria do documento, não cada template. Templates continuam sendo registros separados, com versões próprias; portanto, novos templates não exigem novos cases neste enum.  O atestado de orientação terá um template ativo administrado pelo setor de estágio. Esse template poderá ser versionado e será utilizado pelos coordenadores. A emissão do atestado apenas registra a geração, sem fluxo de assinatura.  [`GeneratedDocumentOrigin`](doc:enum-generateddocumentorigin) descreve quem forneceu/gerou o documento e [`GeneratedDocumentStatus`](doc:enum-generateddocumentstatus) descreve o ciclo do registro.",
      "line": 4
    },
    {
      "id": "checklist-de-implementacao",
      "level": 2,
      "title": "Checklist de implementação",
      "text": "- [x] Definir catálogo e nomes conforme a decisão aprovada. - [x] Definir que aditivo não terá entidade própria inicialmente. - [x] Criar enum string e rótulos. - [x] Implementar `options()` e `values()`. - [x] Adicionar cast em `DocumentTemplate`. - [x] Adicionar cast em `GeneratedDocument`. - [x] Usar o enum na [migration de generated_documents](doc:migration-16-generated-documents). - [x] Validar no Model as combinações de tipo, origem e status. - [x] Testar todos os cases, valores, opções, rótulos e conversão de valores. - [ ] Testar a geração do documento principal quando o fluxo documental for implementado.",
      "line": 18
    }
  ],
  "sourcePath": "content/enum-generateddocumenttype.md",
  "visuals": [],
  "apiVersion": 1
}
