docs(report): add section 5.3 draft assets
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# 5.3.4 Database Schema and Persistence Model
|
||||
|
||||
## Core Entity Relationship Diagram
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
USERS ||--o{ DEVICES : owns
|
||||
USERS ||--o{ DEVICE_LINKS : owns
|
||||
DEVICES ||--o{ DEVICE_LINKS : cameraDeviceId
|
||||
DEVICES ||--o{ DEVICE_LINKS : clientDeviceId
|
||||
USERS ||--o{ STREAM_SESSIONS : owns
|
||||
DEVICES ||--o{ STREAM_SESSIONS : cameraDeviceId
|
||||
DEVICES ||--o{ STREAM_SESSIONS : requesterDeviceId
|
||||
|
||||
USERS {
|
||||
uuid id PK
|
||||
varchar email
|
||||
varchar name
|
||||
}
|
||||
DEVICES {
|
||||
uuid id PK
|
||||
uuid user_id FK
|
||||
varchar role
|
||||
varchar status
|
||||
timestamp last_seen_at
|
||||
}
|
||||
DEVICE_LINKS {
|
||||
uuid id PK
|
||||
uuid owner_user_id FK
|
||||
uuid camera_device_id FK
|
||||
uuid client_device_id FK
|
||||
varchar status
|
||||
}
|
||||
STREAM_SESSIONS {
|
||||
uuid id PK
|
||||
uuid owner_user_id FK
|
||||
uuid camera_device_id FK
|
||||
uuid requester_device_id FK
|
||||
varchar status
|
||||
varchar reason
|
||||
}
|
||||
```
|
||||
|
||||
## Media and Event Persistence
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
USERS ||--o{ EVENTS : owns
|
||||
DEVICES ||--o{ EVENTS : triggeredBy
|
||||
STREAM_SESSIONS ||--o{ RECORDINGS : produces
|
||||
EVENTS ||--o{ RECORDINGS : mayCreate
|
||||
USERS ||--o{ NOTIFICATIONS : receives
|
||||
EVENTS ||--o{ NOTIFICATIONS : generates
|
||||
USERS ||--o{ NOTIFICATION_DELIVERIES : owns
|
||||
DEVICES ||--o{ NOTIFICATION_DELIVERIES : targets
|
||||
USERS ||--o{ AUDIT_LOGS : owns
|
||||
DEVICES ||--o{ AUDIT_LOGS : actor
|
||||
|
||||
EVENTS {
|
||||
uuid id PK
|
||||
uuid user_id FK
|
||||
uuid device_id FK
|
||||
varchar status
|
||||
timestamp started_at
|
||||
timestamp ended_at
|
||||
}
|
||||
RECORDINGS {
|
||||
uuid id PK
|
||||
uuid stream_session_id FK
|
||||
uuid event_id FK
|
||||
varchar object_key
|
||||
varchar bucket
|
||||
varchar status
|
||||
}
|
||||
NOTIFICATIONS {
|
||||
uuid id PK
|
||||
uuid event_id FK
|
||||
uuid user_id FK
|
||||
varchar channel
|
||||
varchar status
|
||||
}
|
||||
NOTIFICATION_DELIVERIES {
|
||||
uuid id PK
|
||||
uuid recipient_device_id FK
|
||||
varchar type
|
||||
varchar status
|
||||
int attempts
|
||||
}
|
||||
AUDIT_LOGS {
|
||||
uuid id PK
|
||||
uuid owner_user_id FK
|
||||
uuid actor_device_id FK
|
||||
varchar action
|
||||
varchar target_type
|
||||
varchar target_id
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user