# Base de Web Push com FCM na central de notificacoes

Data: 2026-04-13

## O que entrou

- criacao da tabela de subscriptions web push em [sql/2026-04-13-create-app-push-subscriptions.sql](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/sql/2026-04-13-create-app-push-subscriptions.sql:1)
- integracao server-side com Firebase Cloud Messaging HTTP v1 em:
  - [FirebasePushConfig.php](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/src/Integrations/Firebase/FirebasePushConfig.php:1)
  - [FirebaseAccessTokenProvider.php](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/src/Integrations/Firebase/FirebaseAccessTokenProvider.php:1)
  - [FirebaseMessagingClient.php](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/src/Integrations/Firebase/FirebaseMessagingClient.php:1)
- persistencia de subscriptions por usuario/navegador em [PushSubscriptionRepository.php](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/src/Modules/Notifications/Push/PushSubscriptionRepository.php:1)
- ativacao real do canal `push` em [PushChannel.php](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/src/Modules/Notifications/Channels/PushChannel.php:1)
- endpoints de push no controller de notificacoes em [NotificationsController.php](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/src/Modules/Notifications/Http/NotificationsController.php:1)
- configuracoes publicas do FCM por contrato em [ContractSettingsService.php](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/src/Modules/ContractSettings/Services/ContractSettingsService.php:1) e [contrato-configuracoes.php](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/pages/admin/contrato-configuracoes.php:1)
- experiencia de opt-in na central admin em [notificacoes.php](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/pages/admin/notificacoes.php:1) com [notifications-push-fcm.js](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/scripts/notifications-push-fcm.js:1)
- service worker raiz em [firebase-messaging-sw.js](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/firebase-messaging-sw.js:1)
- guia operacional em [docs/push-fcm-web-setup.md](/G:/Clientes/PREVCLUBE/Clientes/DrTigre/sistema/docs/push-fcm-web-setup.md:1)

## Resultado

- a central passa a ter base real para web push no admin
- o backend ja consegue registrar navegadores e enviar mensagens push pelo FCM
- o contrato pode publicar a configuracao web sem expor a chave privada do servidor

## Pendencias naturais

- expandir a UX para `cliente` e `parceiro`
- considerar invalidacao mais agressiva de tokens quando o FCM responder erros definitivos
- incluir teste manual de recepcao com tipos prioritarios como tarefas, chat e financeiro
