SGEProduto · Domínio · Desenvolvimento
Repositório

reference-hub · in-progress

Enums

Índice dos enums do SGE, com status de implementação, valores persistidos e checklists individuais.

Painel

StatusEnumOnde é usado
✅ ImplementadoEnum — AffiliationTypeaffiliations.type
✅ ImplementadoEnum — BrazilianStatecities.state, endereços, campi e calendários
✅ ImplementadoEnum — HolidayScopeholidays.scope
✅ ImplementadoEnum — EmailMessagePurposeemail_messages.purpose
✅ ImplementadoEnum — EmailDeliveryAttemptStatusemail_delivery_attempts.status
✅ ImplementadoEnum — InternshipRequestStatusinternship_requests.status
✅ ImplementadoEnum — LegalCapacityDeclarationinternship_requests.legal_capacity_declaration
✅ ImplementadoEnum — InternshipRequestCorrectionStatusinternship_request_corrections.status
✅ ImplementadoEnum — InternshipStatusinternships.status
✅ ImplementadoEnum — PartyDocumentTypegranting_parties.document_type
✅ ImplementadoEnum — GeneratedDocumentTypegenerated_documents.type
✅ ImplementadoEnum — GeneratedDocumentStatusgenerated_documents.status
✅ ImplementadoEnum — GeneratedDocumentOrigingenerated_documents.origin
✅ ImplementadoEnum — EvaluationStatussupervisor_evaluations.status
✅ ImplementadoEvaluationConceptopções de conceitos da avaliação, com rótulos em português.
✅ ImplementadoEnum — RegistrationRequestStatussolicitações de cadastro pendente
✅ ImplementadoEnum — InternshipCancellationRequestStatusinternship_cancellation_requests.status
✅ ImplementadoEnum — EmancipationEvidenceStatusemancipation_evidences.status

Neste índice, Implementado significa que a classe do enum e seus testes unitários já existem. O uso em Models, migrations, Policies e fluxos de domínio continua indicado no checklist individual.

  • Confirmar cada enum contra a regra de negócio aprovada.
  • Manter valores persistidos em inglês e snake_case.
  • Manter rótulos de interface nas traduções/label(), sem persistir texto exibido.
  • Adicionar teste para todos os cases, values() e options() quando esses métodos existirem.
  • Atualizar a migration que usa o enum e o painel de desenvolvimento.
  • Não criar enum para permissões, templates, campus ou vínculos desativados quando a regra já for atendida por Policy, versão ou timestamp.

O que não é enum agora

  • CampusStatus: usar deactivated_at.
  • AffiliationStatus: usar deactivated_at.
  • TemplateStatus: usar versões e activated_at/deactivated_at.
  • Autorização: implementar a matriz institucional em Policies/Gates, a partir de AffiliationType e do vínculo ativo; ela não é configurável em tempo de execução.
  • Variáveis de template: usar catálogo fixo em português com ${variavel}.
  • Motivo/origem de jornada e fonte do calendário: strings auditadas; não são conjuntos fechados.
  • Aditivos: usar GeneratedDocumentType::Addendum.
  • Feriados: usar calendário nacional, estadual e municipal persistido, aplicável pela cidade/UF do endereço histórico do local de trabalho; exceções de um estágio ficam em internship_calendar_overrides.