Vertex Solutions

CBAV

Sistema CRM Ministerial

Sistema de Notificações

Sistema completo de notificações em tempo real

v2.0.0 Ativo

Visão Geral

O Sistema de Notificações é uma funcionalidade central que mantém todos os usuários informados sobre eventos importantes do sistema. Oferece notificações em tempo real, agendamento, categorização e múltiplos canais de entrega.

Funcionalidades Principais:

  • Notificações em tempo real
  • Agendamento de notificações
  • Múltiplos canais (email, push, SMS)
  • Categorização e prioridades
  • Preferências por usuário
  • Relatórios e estatísticas

Benefícios:

  • Comunicação eficiente
  • Engajamento dos membros
  • Transparência nas informações
  • Controle de spam
  • Personalização por usuário
  • Histórico completo

Funcionalidades Detalhadas

Tipos de Notificação

Sistema de categorização para diferentes tipos de notificações.

  • Info: Informações gerais
  • Success: Confirmações positivas
  • Warning: Avisos importantes
  • Error: Erros e problemas
  • Urgent: Notificações urgentes

Canais de Entrega

Múltiplos canais para garantir que a notificação chegue ao destinatário.

  • Interno: Notificação no sistema
  • Email: Envio por email
  • Push: Notificações push (futuro)
  • SMS: Mensagens SMS (futuro)

Agendamento

Sistema de agendamento para enviar notificações em horários específicos.

  • • Agendamento por data/hora
  • • Notificações recorrentes
  • • Cancelamento de agendamentos
  • • Relatórios de envio

Preferências

Controle individual de preferências de notificação por usuário.

  • • Categorias preferidas
  • • Horários de recebimento
  • • Canais preferidos
  • • Frequência de notificações

Estrutura do Banco de Dados

Tabela: notificacaos

CREATE TABLE notificacaos (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    user_id BIGINT UNSIGNED NULL,
    tipo VARCHAR(255),
    titulo VARCHAR(255),
    mensagem TEXT,
    icone VARCHAR(255) NULL,
    acao_url VARCHAR(255) NULL,
    acao_texto VARCHAR(255) NULL,
    lida BOOLEAN DEFAULT FALSE,
    lida_em TIMESTAMP NULL,
    dados_extras JSON NULL,
    prioridade ENUM('baixa', 'normal', 'alta', 'urgente') DEFAULT 'normal',
    categoria VARCHAR(255) DEFAULT 'sistema',
    destinatario_tipo ENUM('usuario', 'membro', 'ministerio', 'todos') NULL,
    destinatario_id BIGINT UNSIGNED NULL,
    enviada_por BIGINT UNSIGNED NULL,
    agendada_para TIMESTAMP NULL,
    enviada_em TIMESTAMP NULL,
    created_at TIMESTAMP NULL,
    updated_at TIMESTAMP NULL
);

Modelos e Relacionamentos

Notificacao Model

class Notificacao extends Model
{
    protected $fillable = [
        'user_id',
        'tipo',
        'titulo',
        'mensagem',
        'icone',
        'acao_url',
        'acao_texto',
        'lida',
        'lida_em',
        'dados_extras',
        'prioridade',
        'categoria',
        'destinatario_tipo',
        'destinatario_id',
        'enviada_por',
        'agendada_para',
        'enviada_em'
    ];

    public function user()
    {
        return $this->belongsTo(User::class);
    }

    public function destinatario()
    {
        return $this->belongsTo(User::class, 'destinatario_id');
    }

    public function remetente()
    {
        return $this->belongsTo(User::class, 'enviada_por');
    }
}

Serviços

NotificacaoService

Serviço principal para gerenciar todas as operações de notificação.

class NotificacaoService
{
    // Criar notificação para membro específico
    public static function notificarMembro($membroId, $tipo, $titulo, $mensagem, $dadosExtras = [])
    
    // Criar notificação para usuário específico
    public static function notificarUsuario($userId, $tipo, $titulo, $mensagem, $dadosExtras = [])
    
    // Criar notificação para ministério
    public static function notificarMinisterio($ministerioId, $tipo, $titulo, $mensagem, $dadosExtras = [])
    
    // Criar notificação para todos os usuários
    public static function notificarTodos($tipo, $titulo, $mensagem, $dadosExtras = [])
    
    // Agendar notificação
    public static function agendarNotificacao($dados, $dataEnvio)
    
    // Processar notificações agendadas
    public static function processarNotificacoesAgendadas()
}

Controladores

NotificationController

Controlador para gerenciar notificações na área administrativa.

class NotificationController extends Controller
{
    public function index()           // Lista de notificações
    public function create()          // Formulário de criação
    public function store()           // Salvar notificação
    public function show()            // Visualizar notificação
    public function edit()            // Formulário de edição
    public function update()          // Atualizar notificação
    public function destroy()         // Excluir notificação
    public function enviar()          // Enviar notificação
    public function agendar()         // Agendar notificação
    public function relatorios()      // Relatórios
}

NotificacaoController (Member)

Controlador para gerenciar notificações dos membros.

class NotificacaoController extends Controller
{
    public function index()           // Lista de notificações do usuário
    public function unread()          // Notificações não lidas
    public function markAsRead()      // Marcar como lida
    public function markAllAsRead()   // Marcar todas como lidas
    public function countUnread()     // Contar não lidas
    public function destroy()         // Excluir notificação
}

Comandos Artisan

Comandos Disponíveis:

  • notifications:status - Status do sistema
  • notifications:process - Processar agendadas
  • notifications:clean - Limpar antigas
  • notifications:test - Testar envio

Exemplos de Uso:

# Verificar status
php artisan notifications:status

# Processar notificações agendadas
php artisan notifications:process

# Limpar notificações antigas
php artisan notifications:clean

# Testar envio
php artisan notifications:test

Integração com Outros Sistemas

Sistemas Integrados:

  • Gestão de Membros: Novos membros, atualizações
  • Sistema Financeiro: Transações, campanhas
  • EBD Digital: Notas, certificados
  • Eventos: Inscrições, lembretes
  • Pedidos de Oração: Novos pedidos, intercessões
  • Conselho: Votações, pautas

Tipos de Notificação:

  • Info: Informações gerais do sistema
  • Success: Confirmações de ações
  • Warning: Avisos importantes
  • Error: Erros e problemas
  • Urgent: Notificações urgentes

Relatórios e Estatísticas

Relatórios Disponíveis:

  • • Notificações por período
  • • Notificações por tipo
  • • Notificações por categoria
  • • Taxa de entrega
  • • Taxa de leitura
  • • Usuários mais ativos

Estatísticas:

  • • Total de notificações
  • • Notificações enviadas
  • • Notificações lidas
  • • Notificações pendentes
  • • Usuários ativos
  • • Canais mais utilizados