@startuml
left to right direction
actor "User\n(Visually Impaired)" as User
actor "Guardian" as Guardian
actor "Firebase FCM" as FCM
actor "Agora RTC" as Agora
actor "OpenStreetMap/OSRM" as Map

rectangle "WalkGuide System" {
  usecase "Register/Login" as UCAuth
  usecase "Pair Guardian and User" as UCPair
  usecase "Start WalkGuide" as UCWalk
  usecase "Detect Obstacle" as UCDetect
  usecase "Report Location" as UCLoc
  usecase "Trigger SOS" as UCSos
  usecase "Read Notifications" as UCNotif
  usecase "Call Partner" as UCCall
  usecase "Monitor Dashboard" as UCDash
  usecase "Configure AI, TTS,\nVoice Commands, Geofence" as UCConfig
  usecase "Acknowledge SOS" as UCAck
  usecase "Navigate Route" as UCNav
}

User --> UCAuth
Guardian --> UCAuth
Guardian --> UCPair
User --> UCPair
User --> UCWalk
UCWalk --> UCDetect : <<include>>
UCWalk --> UCLoc : <<include>>
User --> UCSos
User --> UCNotif
User --> UCCall
Guardian --> UCCall
Guardian --> UCDash
Guardian --> UCConfig
Guardian --> UCAck
User --> UCNav

UCSos --> FCM
UCNotif --> FCM
UCCall --> Agora
UCCall --> FCM
UCNav --> Map
@enduml
