2026-05-17 18:40:03 +07:00

23 lines
739 B
Plaintext

@startuml
actor User
actor Guardian
participant "SosScreen" as UI
participant "UserController" as UserController
participant "SosService" as SosService
database "PostgreSQL" as DB
participant "FcmService" as FCM
participant "LocationBroadcaster" as WS
participant "GuardianDashboard" as Dashboard
User -> UI : press SOS / voice command
UI -> UserController : POST /api/v1/user/sos
UserController -> SosService : triggerSos(userId, req)
SosService -> DB : save sos_events
SosService -> FCM : push high-priority SOS
SosService -> WS : /queue/sos/{guardianId}
WS -> Dashboard : realtime SOS alert
Guardian -> Dashboard : acknowledge
Dashboard -> SosService : PUT /guardian/sos/{id}/acknowledge
SosService -> DB : status ACKNOWLEDGED
@enduml