Skip to content

feat: Notifications module v3.9.1#1107

Open
igorgoncalves wants to merge 3 commits intomainfrom
feat/notification-module
Open

feat: Notifications module v3.9.1#1107
igorgoncalves wants to merge 3 commits intomainfrom
feat/notification-module

Conversation

@igorgoncalves
Copy link
Copy Markdown
Member

@igorgoncalves igorgoncalves commented Feb 27, 2026

🚀 Motivação

O sistema não possuía um módulo de notificações centralizado. Os usuários precisavam de uma forma de receber avisos do sistema e dos administradores, e os administradores precisavam de uma interface para criar e gerenciar essas notificações.

🔧 Alterações Realizadas

  • Módulo notifications adicionado com controllers NotificationsController (admin) e InboxController (usuário)
  • Modelos Notification e NotificationRecipient refatorados para herdar de TagModel, padronizando timestamps via CTimestampBehavior
  • NotificationService registrado como componente da aplicação (Yii::app()->notifier)
  • Views de inbox, listagem e detalhe de notificações com design system TAG
  • Correção do user->loginInfos->id no InboxController para identificação correta do usuário logado
  • Refinamento visual: badges de status na tabela de destinatários, ícones alinhados, seção de metadados

📌 Requisitos

  • Executar a migration SQL antes de testar:
    app/migrations/3.9.0/notification_timestamps.sql

🛠️ Fluxo de Teste

🧪 Fluxo de Teste 1 (FT1) — Enviar notificação como admin:

1. Acessar Gerenciar Notificações > Nova Notificação
2. Preencher título, mensagem, tipo e selecionar destinatários
3. Clicar em Enviar Notificação

✅ Sucesso: Notificação criada e listada na tela de gerenciamento com destinatários
❌ Falha: Erro de validação ou notificação não aparece na lista

🧪 Fluxo de Teste 2 (FT2) — Receber e ler notificação no inbox:

1. Logar com um usuário destinatário
2. Acessar Inbox (Minhas Notificações)
3. Verificar notificação na lista e clicar em Marcar como lida

✅ Sucesso: Notificação marcada como lida e contador atualizado
❌ Falha: Notificação não aparece ou erro ao marcar como lida

✨ Migrations Utilizadas

  • app/migrations/3.9.0/notification_timestamps.sql — Adiciona colunas updated_at em notification e created_at/updated_at em notification_recipient

✔️ Checklist - Padrões para PR

  • O número da versão foi alterado no arquivo config.php?
  • Foi adicionada uma descrição das alterações no arquivo de CHANGELOG?
  • O pull request passou na avaliação do SonarLint?
  • O pull request está nomeado corretamente seguindo o padrão de nomes de branchs?

Documentação

Houve alteração nos fluxo de uso?
(Lembrete: Em caso afirmativo, adicionar label Atualização de manual)

  • Sim
  • Não

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant