enum-reference · implemented
Enum — AffiliationType
Tipos funcionais permitidos para um vínculo institucional do SGE.
Contrato
Classifica o papel funcional de uma pessoa dentro de um vínculo. Não representa e-mail, campus, permissão isolada ou representante legal.
| Case | Valor persistido | Rótulo |
|---|---|---|
SystemAdministrator | system_administrator | Administrador do Sistema |
CampusAdministrator | campus_administrator | Administrador do Campus |
InternshipOffice | internship_office | Setor de Estágios |
Coordinator | coordinator | Coordenador de Curso |
Advisor | advisor | Orientador |
Student | student | Discente |
Supervisor | supervisor | Supervisor |
TeachingDirection | teaching_direction | Direção de Ensino |
O representante legal e seu cargo são campos textuais de Campus, não são um vínculo nem um case de AffiliationType. Não criar LegalRepresentative.
Checklist de implementação
- Criar enum string em
App\Enums\AffiliationType. - Implementar
label(),options()evalues(). - Adicionar cast do enum no Model
Affiliation. - Usar o enum no cast e na validação de
affiliations. - Cobrir todos os cases, rótulos e opções com testes unitários.
- Aplicar as Policies ao Administrador do Sistema para gestão global e gestão de contas/vínculos administrativos.
- Completar e testar as regras de escopo dos demais tipos nas Policies.
- Confirmar que este enum, vínculo ativo, escopo e estado são a única fonte de autorização; as tabelas de permissões foram removidas.