enum-reference · implemented
Enum — EmailMessagePurpose
Finalidades estáveis para mensagens de e-mail do SGE.
Contrato implementado
Classifica a finalidade da mensagem de notificação ou da tentativa de envio. Não substitui notifications.type, que identifica o tipo específico do aviso operacional.
| Case | Valor persistido | Rótulo |
|---|---|---|
Notification | notification | Notificação operacional |
AccountCreated | account_created | Conta criada |
NewAffiliation | new_affiliation | Novo vínculo |
AccountEmailChanged | account_email_changed | Alteração de e-mail da conta |
AdministrativeChange | administrative_change | Alteração administrativa |
As finalidades AccountCreated, NewAffiliation, AccountEmailChanged e AdministrativeChange representam mensagens administrativas com conteúdo renderizado persistido em email_messages e tentativas associadas. AccountCreated leva à solicitação de definição da senha sem guardar token ou URL assinada; NewAffiliation leva ao login. Registros antigos de conta criada ou novo vínculo podem não ter email_message. AdministrativeChange cobre avisos ligados a desativação/exclusão de vínculo ou exclusão de conta. Notification identifica conteúdo operacional associado a uma notificação interna. Recuperação de senha não usa esse enum porque não é registrada nessas tabelas.
Decisões de segurança
- Recuperação de senha não pode persistir token, URL assinada ou corpo sensível.
- Mensagens operacionais guardam o conteúdo renderizado e imutável, sem cast criptografado.
O fluxo de recuperação de senha não inclui confirmação adicional de endereço de e-mail e não cria registros de mensagem ou tentativa.
Checklist de implementação
- Confirmar cases e nomes no enum atual.
- Criar
App\Enums\EmailMessagePurposecomo enum string. - Implementar
label(),options()evalues(). - Adicionar cast em
EmailMessage. - Persistir o conteúdo de novas mensagens das cinco finalidades em email_messages, exceto recuperação de senha, que fica fora dessas tabelas.
- Criar testes para cases, conversão e opções.
- Testar que senhas, tokens de recuperação, identificadores internos de entrega e exceções brutas não sejam persistidos ou exibidos no histórico administrativo.