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.