Skip to content

ADR-0011 — Estratégia de Comunicações

Proposto

O sistema EBDbe precisa de canais de comunicação para:

  • Ativação manual de contas: avisar aprovadores quando há solicitante aguardando; avisar solicitante do resultado (ADR-0010)
  • Coordenação entre participantes: superintendentes, secretários, professores, alunos
  • Notificações operacionais: lembretes, alertas, informações da unidade
  • Comunicação publicitária e informativa: site (visitantes, usuários, qualificados)
  • Comunicações urgentes: situações que exigem prioridade sobre demais avisos

As comunicações devem respeitar a hierarquia organizacional (ADR-0002), o modelo de acesso (ADR-0003) e a privacidade (ADR-0006). É fundamental definir regras claras de destino e permissão antes da implementação.


O sistema adotará estratégia de comunicações em quatro tipos:

  1. Instantânea — notificação em tempo (ou quase) real
  2. Email — assíncrona, com as mesmas regras de destino
  3. Site — pública, gerenciada e específica (para visitantes, usuários e qualificados)
  4. Urgente — prioridade máxima sobre outras comunicações

O backend será autoridade para validação de destinatários e permissões. Todas as comunicações estarão sujeitas a validação de escopo (ministry_id, unit_id) e papel do remetente.


TipoPolítica
InstantâneaObservar o previsto neste ADR (seções 1.x)
EmailObservar o previsto neste ADR (seções 2.x)
SiteVer seção 4 (tipos público, gerenciado, específico)
UrgenteVer seção 5 (usuários e grupos qualificados)

Notificação entregue em tempo (ou quase) real, exibida no sistema (PWA) e/ou via push.

DestinoDescriçãoExemplo
PessoaUm usuário específicouser_id
GrupoConjunto definido (ex.: ClassGroup)Todos da classe Juniores
NívelPor posição na árvore hierárquicaTodas as igrejas do ministério
PerfilPor RoleTodos EBD_SUPERINTENDENT da unit
  • Remetente deve ter permissão de leitura sobre o escopo dos destinatários.
  • Escopo: ministry_id, unit_id (e hierarquia). LOCAL_SECRETARY envia para sua unit e filhas; MINISTRY_ADMIN para todo o ministério.
  • Validação no backend antes do envio.

Firebase Cloud Messaging (FCM) ou equivalente. O sistema armazenará preferências de canal (receber/não receber) por usuário. Essas preferências integram o perfil de usuário por tenant (ADR-0013).


Mesma lógica de destino da mensagem instantânea.

  • Pessoa, Grupo, Nível, Perfil (idênticos à seção 1)
  • Mesmas regras de escopo e permissão da mensagem instantânea.
  • Email é assíncrono; adequado para auditoria, lembretes e notificações que precisam persistir fora do sistema.
  • Consentimento para recebimento de emails (conforme ADR-0006).
  • Opt-in para comunicações promocionais/informativas; opt-out possível para não essenciais.
  • Emails de transação (ex.: ativação de conta, resultado de aprovação) são essenciais e não opt-out.

3. Modalidade: Mensagem Entre Participantes (P2P)

Section titled “3. Modalidade: Mensagem Entre Participantes (P2P)”

Comunicação de usuário para usuário(s), com regras mais restritivas. Utiliza canais instantâneo e/ou email conforme destino e preferências.

DestinoDescriçãoRestrição
PessoaUm usuário específicoMesmo escopo ou abaixo
GrupoGrupo do qual o remetente participaEx.: mesma ClassGroup
Mesmo nívelUsuários da mesma unit ou mesmo patamar hierárquico no ramoNão superior
Mesmo perfilUsuários com o mesmo RoleEx.: professor p/ professor
AbaixoUsuários em nível hierárquico inferiorNa mesma unit ou filhas
  • Não enviar para nível superior (evita sobrecarga de superiores).
  • Não enviar para fora do escopo do remetente.
  • “Abaixo” = mesma unit ou unit filha, com Role de nível maior (menor poder).
  • Professor comunica turma.
  • Secretário comunica superintendente.
  • Aluno envia dúvida ao professor.
  • Superintendente comunica professores da unidade.

Comunicação publicitária e informativa exibida no site/webapp do sistema, com três níveis de alcance e permissão.

  • Destino: visitantes (não autenticados) ou qualquer pessoa que acessa o site.
  • Conteúdo: comunicação publicitária geral.
  • Permissão: gerenciada por MINISTRY_ADMIN ou equivalente.
  • Exemplo: avisos de eventos abertos, boas-vindas, promoções gerais.
  • Destino: usuários autenticados.
  • Conteúdo: comunicação publicitária e informativa gerenciada.
  • Permissão: escopo por ministry_id e unit_id conforme RBAC.
  • Exemplo: avisos da unidade, lembretes de reuniões, informações da EBD.
  • Destino: usuários com perfil qualificado (ex.: professores, superintendentes, secretários).
  • Conteúdo: comunicação publicitária e informativa gerenciada.
  • Permissão: filtrada por Role e escopo organizacional.
  • Exemplo: orientações para professores, atualizações curriculares, comunicados dirigidos.

Comunicação com prioridade máxima, destinada a usuários e/ou grupos qualificados.

  • Destino: usuários específicos e/ou grupos qualificados.
  • Prioridade: sobressai sobre todas as outras comunicações.
  • Canal: pode combinar instantânea, email e exibição destacada no site conforme configuração.
  • Exemplo: alteração de última hora em evento, aviso de segurança, cancelamento urgente.
  • Remetente deve ter permissão adequada para envio de comunicações urgentes.
  • Validação no backend; possível exigir confirmação de segundo fator para envio.
  • Avisos urgentes sempre exibidos em destaque (ver seção 7).

TipoPessoaGrupoNívelPerfilAbaixo
InstantâneaSimSimSimSimNão
EmailSimSimSimSimNão
Site (público)
Site (usuários)SimSimSimSimNão
Site (qualificados)SimSimSimSimNão
UrgenteSimSimSimSimConforme escopo
Entre participantesSimSimSimSimSim

7. Avisos e Configurações de Preferência

Section titled “7. Avisos e Configurações de Preferência”

Os avisos devem ocorrer e ter configurações de preferência nos seguintes tipos:

  • Canal de entrega: mensagem no celular bloqueado (push), na lista de notificações e aviso no sininho do app.
  • Preferências: habilitar/desabilitar push, som, vibração.
  • Persistência: histórico na lista do app.
  • Preferências: opt-in/opt-out conforme ADR-0006 (exceto mensagens essenciais).
  • Formato: respeitar template e assinatura configurados.
  • Destaque: mensagens não visualizadas devem ter destaque visual (indicador, badge, prioridade na listagem).
  • Preferências: quais categorias exibir, ordem de exibição.
  • Marcação: possibilidade de marcar como lido/não lido.
  • Prioridade: devem sobresair sobre outras comunicações (ex.: overlay, banner fixo, notificação bloqueando interação).
  • Não opt-out: avisos urgentes não podem ser desativados pelo usuário (exceto conforme política de segurança).
  • Canal: sempre visível no site e, quando aplicável, via instantânea e/ou email.

8. Integração com Ativação Manual (ADR-0010)

Section titled “8. Integração com Ativação Manual (ADR-0010)”

O fluxo de ativação manual depende das comunicações:

8.1 Quando Solicitante Cadastra (status PENDING)

Section titled “8.1 Quando Solicitante Cadastra (status PENDING)”
  • Sistema identifica aprovadores.
  • Envia notificação instantânea aos aprovadores: “Solicitante X aguarda sua aprovação na unit Y. [Link]”
  • Envia email aos aprovadores com o mesmo conteúdo.
  • Sem essa notificação, o fluxo de ativação manual não funciona.
  • Se aprovado: notificação (instantânea + email) ao solicitante: “Sua conta foi ativada.”
  • Se rejeitado: notificação ao solicitante com a decisão (motivo opcional).

  • Quem envia mensagem “de sistema” (instantânea ou email para múltiplos): deve ter permissão READ sobre o escopo dos destinatários.
  • Quem envia mensagem entre participantes: regras da seção 3 (P2P).

Antes de enviar, o backend valida:

  • Remetente autenticado
  • Destinatários resolvidos (lista de user_ids)
  • Remetente tem permissão para alcançar cada destinatário
  • Escopo (ministry_id, unit_id) respeitado

  • Referência: ADR-0006 (Política de Privacidade).
  • Preferências de canal por usuário: receber instantâneas, receber emails, receber do site, urgentes.
  • Comunicações essenciais (ativação, segurança, transação) não são opt-out.
  • Logs de envio para auditoria, sem expor conteúdo sensível além do necessário.

Message (genérico)
├── type: INSTANT | EMAIL | SITE | URGENT | PARTICIPANT
├── sender_id
├── recipient_type: USER | GROUP | LEVEL | PROFILE | BELOW
├── recipient_ids[] (resolvidos)
├── ministry_id, unit_id (escopo)
├── subject / body
└── created_at
NotificationPreferences (por User)
├── receive_instant: boolean
├── receive_email: boolean
├── receive_site: boolean
├── receive_urgent: boolean (não opt-out em geral)
├── instant_push_locked: boolean (celular bloqueado)
├── instant_app_bell: boolean (sininho)
└── ...

As preferências são vinculadas ao perfil de aplicação do usuário no tenant (ministry_id) e não concedem permissão adicional de acesso.


  • Infraestrutura de mensageria necessária (FCM, serviço de email).
  • Backend valida destinatários e permissões antes de todo envio.
  • Ativação manual depende da implementação das notificações.
  • Preferências de canal devem ser respeitadas.
  • Site requer área de comunicação publicitária/informativa com níveis de acesso.
  • Comunicações urgentes exigem tratamento prioritário em UI e backend.
  • Alterações nas regras de comunicação exigirão novo ADR.