SGEProduto · Domínio · Desenvolvimento
Repositório

migration-reference · implemented

Migration 13 — document_templates

Catálogo implementado de templates DOCX lógicos, globais ou por campus.

Contrato

document_templates representa o template lógico, separado de suas versões. O arquivo DOCX pertence a template_versions e é armazenado pelo Media Library; esta tabela não guarda arquivo nem dados de geração.

ColunaTipo PostgreSQLNuloRegra
idbigintnãoChave primária Laravel.
campus_idbigintsimFK para campuses.id com exclusão RESTRICT; nulo indica modelo global.
namevarchar(255)nãoNome legível obrigatório.
descriptiontextsimFinalidade opcional.
document_typevarchar(255)nãoCast de GeneratedDocumentType.
deactivated_attimestamp(0)simMarca indisponibilidade para novas versões ou gerações futuras.
created_at / updated_attimestamp(0)simTimestamps nativos.

O id identifica o template lógico e é referenciado por template_versions.document_template_id na Migration 14. Não há key nem unicidade de name: nomes iguais podem identificar templates diferentes, inclusive no mesmo campus. A aplicação não depende de chaves de template fixas no código. campus_id possui índice simples; o Model exige campus ativo ao atribuir um template local. active() filtra a desativação; availableToCampus() reúne os templates globais e os daquele campus. Esses scopes ainda não substituem autorização por vínculo.

O Activity Log registra alterações do catálogo. A desativação preserva o registro; os fluxos futuros de versão e geração deverão respeitar deactivated_at. A relação com template_versions está implementada na Migration 14; a proteção de versões utilizadas será concluída com generated_documents.

O template padrão manterá o marcador ${PARAGRAFO_REMUNERACAO}. Na geração, RemunerationParagraphFormatter preencherá o parágrafo completo conforme a remuneração. Essa regra e a escolha manual do template para modelos especiais ou credenciamentos permanecem no contrato de geração; não há seleção automática por concedente.

Checklist

  • Definir identificação, categoria e escopo global/por campus.
  • Criar migration, Model e factory de DocumentTemplate.
  • Validar escopo, campos obrigatórios e desativação.
  • Testar schema sem key, FK, nomes repetidos, casts, scopes, Activity Log e rollback em PostgreSQL.
  • Relacionar versões e proteger versões já utilizadas na Migration 14.
  • Autorizar upload somente ao vínculo permitido do Setor de Estágio.
  • Usar Media para armazenar o DOCX da versão.
  • Testar acesso por vínculo/permissão e geração com a versão validada mais recente.

Dependências