Skip to content

Módulo de Notificações ​

Arquitetura de Notificações ​

O SystemClinic utiliza duas camadas de notificações:

  1. Notificações assíncronas (e-mail): Processadas por background jobs via Hangfire
  2. Notificações em tempo real (in-app): Entregues via SignalR

Notificações por E-mail ​

Provedor ​

E-mails são enviados via Resend — provedor de e-mail transacional.

Templates de E-mail ​

TemplateTriggerDestinatário
Confirmação de agendamentoCriação do agendamentoPaciente
Lembrete D-1Job agendado para 24h antesPaciente
Lembrete H-2Job agendado para 2h antesPaciente
CancelamentoStatus → CANCELADOPaciente
Convite de usuárioAdmin cria conviteNovo usuário
Redefinição de senhaSolicitação de resetUsuário

Processamento via Hangfire ​

csharp
// Ao criar agendamento, enfileira jobs:
BackgroundJob.Enqueue(() => SendConfirmationEmail(appointmentId));
BackgroundJob.Schedule(
    () => SendReminderEmail(appointmentId, "24h"),
    appointment.StartAt.AddHours(-24)
);
BackgroundJob.Schedule(
    () => SendReminderEmail(appointmentId, "2h"),
    appointment.StartAt.AddHours(-2)
);

Política de Retry ​

TentativaDelay
1ª retry1 minuto
2ª retry5 minutos
3ª retry15 minutos
Após 3 falhasDead-letter queue

Itens na dead-letter queue geram alerta para o Admin e podem ser reprocessados manualmente no painel do Hangfire.

Notificações In-App (SignalR) ​

Eventos Disponíveis ​

EventoDescrição
appointment.createdNovo agendamento criado
appointment.updatedStatus ou dados de agendamento alterados
appointment.cancelledAgendamento cancelado
invoice.paidPagamento confirmado
notification.alertAlerta geral (estoque baixo, erro de integração)

Conexão no Frontend ​

typescript
// SignalRService — conexão autenticada
this.signalr.connect(environment.apiUrl + '/hubs/notifications', token);
this.signalr.on('appointment.created', (data) => {
  this.dashboard.refresh();
});

Histórico de Notificações ​

O módulo Notificações (/app/notifications) exibe o histórico de notificações in-app do usuário atual com opção de marcar como lida.

Funcionalidades Planejadas (V1) ​

  • [ ] Notificações via WhatsApp (integração Z-API / Evolution API)
  • [ ] Notificações push no PWA (Service Worker)
  • [ ] Configurações de preferência de notificação por usuário
  • [ ] Agendamento de campanhas de retorno (pacientes sem consulta há X dias)

Desenvolvido com ❤️ pela equipe FastGivr.