Repository navigation
Notificações
CAKeysama edited this page Sep 30, 2026
·
1 revision
Avisos exibidos no sino da barra lateral (ou do canto superior, na Home e na tela Sobre). Ficam na coleção notifications do Firestore, com um documento por destinatário.
Definidos em src/domain/entities/notificacao.ts.
| Tipo | Quando é criada | Destinatário | Ao clicar |
|---|---|---|---|
reutilizacao_nova |
Reutilização enviada ao Projetista (1º filtro), similar encontrado ou pedido de dispositivo novo | Administração e Projetistas ativos, exceto quem executou | Abre /reutilizacoes com o registro destacado |
reutilizacao_decidida |
Aprovada, não aprovada (com motivo), similar encontrado ou liberada para fabricação | Solicitante da reutilização, se não for quem executou | Abre /reutilizacoes com o registro destacado |
conta_nova |
Novo cadastro público (Convidado pendente) | Cada administrador ativo | Abre Administração → Cadastros pendentes com o cadastro destacado |
conta_decidida |
Cadastro aprovado ou recusado | O próprio usuário | Marca como lida |
cargo_solicitado |
Pedido de alteração de cargo | Cada administrador ativo | Abre Administração → Solicitações de cargo com o pedido destacado |
cargo_decidido |
Pedido de cargo aprovado ou rejeitado | O solicitante | Marca como lida |
Onde são geradas:
- reutilização:
ReToolContext(notificarFilaProjetista,notificarSolicitante); - contas e cargos: casos de uso em
src/application/usecases/(funçãonotificarAdministradores).
| Campo | Descrição |
|---|---|
id |
Determinístico: tipo_entidadeId_destinatarioUid (idNotificacao()) |
tipo, titulo, descricao, dataHora
|
Conteúdo |
destinatarioUid, remetenteUid
|
Quem recebe e quem gerou |
lida, resolvida
|
Estado de leitura; resolvida marca pedidos já tratados por quem os recebeu |
entidadeId |
Reutilização, usuário ou solicitação de cargo referenciados |
dispositivoId, perfilSolicitado, decisao
|
Dados de apoio conforme o tipo |
Comportamento que decorre desse modelo:
-
Sem duplicatas: o
idé determinístico. Um segundo envio do mesmo evento vira uma atualização, que as regras recusam; o erro é ignorado de propósito. Emreutilizacao_decidida, o título entra noid, então decisões diferentes geram avisos diferentes. - Status sempre atual: o selo exibido (Pendente, Aprovada, Recusada, Rejeitada, o status da reutilização ou Removida) é calculado em tempo real a partir da entidade referenciada, sem novas escritas.
- Falhas não bloqueiam o fluxo: se uma notificação não puder ser criada, a operação principal continua e o erro vai para o console.
- Contador de não lidas.
- Para a Administração, o selo "N aguardando ação" conta cadastros e pedidos de cargo ainda pendentes, e esses itens têm o botão Analisar.
- Marcar todas como lidas e o ícone ✓✓, que marca um item como lido.
- Clicar em um item marca como lido e navega conforme a tabela acima.
Definidas em firestore.rules, bloco match /notifications/{notifId}:
- leitura: somente o destinatário;
-
criação: o remetente é sempre quem está autenticado, e cada tipo tem sua validação:
-
conta_novasó por um Convidado pendente e só para administradores; -
cargo_solicitadosó pelo autor da solicitação e só para administradores; -
conta_decididaecargo_decididosó pela Administração; - os tipos de reutilização só por contas operacionais, e
reutilizacao_novasó para Administração ou Projetista;
-
-
atualização: somente o destinatário, e somente
lidaeresolvida; - exclusão: ninguém.
Siga os passos em Guia do Desenvolvedor → Notificações.
Visão geral
Acesso e segurança
Infraestrutura
Desenvolvimento