Sessão dedicada a completar o sistema SOS de Emergência através de todo o stack ONDAKA (backend Laravel, web admin Inertia/React, mobile Flutter para condóminos+guardas+gestores, FCM push notifications, email aos gestores). APK debug gerado e instalável em telefones reais. Sirene customizada Android adiada para próxima sessão (API breaking change do flutter_local_notifications v21).
sos_alertas (16 cols) · sos_alerta_fotos (FK cascade) · condominios_atribuidos (JSON em users)atendido ou resolvido. Não notifica em falso_alarme (deselegante)./api/guarda/sos/* filtrando por condominios_atribuidos JSON/api/gestor/sos/* empresa-wide via empresa_gestora_id/sos/alertas — lista/sos/alertas/{id} — detalhe/sos/alertas · badge vermelho pulsante no sidebar · toast.error com botão "Ver"Siren no topo da secção Operação · badge urgente com contagem de críticosSosGuardaListaViewcondominios_atribuidos · 2 stat cards · polling 30s · pull-to-refreshcondominios_atribuidos: [1,2] na BDempresa_gestora_id · validado E2E com 20 alertasempresa_gestora_id + roles admin-empresa/gestor/admin-condemails/sos/alerta-criado.blade.php com gradient header, info card, fotos inline, CTA "Ver alerta"mail.ondaka.ao:465 SSL · FROM=noreply@ondaka.aoA infraestrutura FCM JÁ estava 90% pronta no servidor:
firebase-service-account.json em /home/ondaka/ (2373 bytes)FcmSenderService.php 139 linhas com OAuth2 + HTTP v1 + cache 50min do access_tokendevice_tokens populada — mobile já regista tokens automaticamenteFCM_PROJECT_ID=ondaka-prod configurado no .envandroid.priority: HIGH + android.notification.channel_id: ondaka_default já no FcmSenderServiceflutter build apk --debug OK em 15sbuild/app/outputs/flutter-apk/app-debug.apk--release + signed keystoreflutter_local_notifications: ^21.0.0 instalado mas API v21 tem breaking changes drásticasPOST_NOTIFICATIONS adicionada ao manifestisCoreLibraryDesugaringEnabled = true no Gradle aplicadokeytool -genkey -v -keystore ondaka-release.keystoreandroid/key.properties (NÃO commit ao Git)signingConfigs.release no build.gradle.ktsflutter build appbundle --release para Play Storeflutter clean + rebuild, tokens antigos ficaram inválidosregistarApoUsLogin() é chamado após loginflutter_local_notifications v21 mudou drasticamente a API — verificar changelog antes de patchar pacote majorandroid.priority: HIGH + channel_id — só falta criar o channel Android-side via FlutterPOST_NOTIFICATIONS mesmo após patches