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

72 lines
1.7 KiB
Plaintext

@startuml
skinparam classAttributeIconSize 0
class User {
+Long id
+String email
+String role
+String uniqueUserId
+String displayName
+String fcmToken
}
class PairingRelation {
+Long id
+PairingStatus status
+LocalDateTime invitedAt
+LocalDateTime respondedAt
}
class LocationHistory
class ActivityLog
class ObstacleLog
class GuardianNotification
class SosEvent
class UserSettings
class AiConfig
class VoiceCommandConfig
class HardwareShortcut
class GeofenceConfig
class RefreshToken
User "1" -- "0..*" LocationHistory
User "1" -- "0..*" ActivityLog
User "1" -- "0..*" ObstacleLog
User "1" -- "0..*" SosEvent
User "1" -- "0..1" UserSettings
User "1" -- "0..*" RefreshToken
User "1" -- "0..*" PairingRelation : guardian
User "1" -- "0..*" PairingRelation : user
PairingRelation "1" -- "0..*" GuardianNotification
PairingRelation "1" -- "0..1" AiConfig
PairingRelation "1" -- "0..*" VoiceCommandConfig
PairingRelation "1" -- "0..*" HardwareShortcut
PairingRelation "1" -- "0..1" GeofenceConfig
class AuthController
class PairingController
class UserController
class GuardianController
class CallController
class AuthService
class PairingService
class LocationService
class NotificationService
class SosService
class AgoraTokenService
class FcmService
class LocationBroadcaster
AuthController --> AuthService
PairingController --> PairingService
UserController --> LocationService
UserController --> SosService
GuardianController --> NotificationService
GuardianController --> SosService
CallController --> AgoraTokenService
CallController --> FcmService
LocationService --> LocationBroadcaster
NotificationService --> LocationBroadcaster
SosService --> LocationBroadcaster
@enduml