| # Entity-Relationship Diagram |
|
|
| ```mermaid |
| erDiagram |
| User ||--o{ Chat : has |
| User ||--o{ ModelUsage : has |
| Chat ||--o{ Message : has |
| Chat ||--o{ ModelUsage : linked_to |
| |
| User { |
| Integer user_id PK |
| String username "Unique, Not Null" |
| String email "Unique, Not Null" |
| DateTime created_at "Default=datetime.utcnow" |
| } |
| |
| Chat { |
| Integer chat_id PK |
| Integer user_id FK |
| String title "Default='New Chat'" |
| DateTime created_at "Default=datetime.utcnow" |
| } |
| |
| Message { |
| Integer message_id PK |
| Integer chat_id FK |
| String sender "Not Null" |
| Text content "Not Null" |
| DateTime timestamp "Default=datetime.utcnow" |
| } |
| |
| ModelUsage { |
| Integer usage_id PK |
| Integer user_id FK |
| Integer chat_id FK |
| String model_name "Not Null" |
| String provider "Not Null" |
| Integer prompt_tokens "Default=0" |
| Integer completion_tokens "Default=0" |
| Integer total_tokens "Default=0" |
| Integer query_size "Default=0" |
| Integer response_size "Default=0" |
| Float cost "Default=0.0" |
| DateTime timestamp "Default=datetime.utcnow" |
| Boolean is_streaming "Default=False" |
| Integer request_time_ms "Default=0" |
| } |
| ``` |