SGEProduto · Domínio · Desenvolvimento
Repositório

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.

CaseValor persistidoRótulo
NotificationnotificationNotificação operacional
AccountCreatedaccount_createdConta criada
NewAffiliationnew_affiliationNovo vínculo
AccountEmailChangedaccount_email_changedAlteração de e-mail da conta
AdministrativeChangeadministrative_changeAlteraçã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\EmailMessagePurpose como enum string.
  • Implementar label(), options() e values().
  • 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.

Relacionamentos