58 lines
824 B
Markdown
58 lines
824 B
Markdown
# Database Schema
|
|
|
|
## Main Tables
|
|
- users
|
|
- roles
|
|
- permissions
|
|
- role_permissions
|
|
- contacts
|
|
- tags
|
|
- contact_tags
|
|
- senders
|
|
- templates
|
|
- drafts
|
|
- campaigns
|
|
- campaign_recipients
|
|
- conversations
|
|
- messages
|
|
- webhook_events
|
|
- integration_configs
|
|
- activity_logs
|
|
- jobs
|
|
|
|
## Key Notes
|
|
- Use UUID primary keys
|
|
- Store raw provider payloads in JSONB
|
|
- Normalize webhook events into internal event types
|
|
- Use created_at and updated_at on all mutable entities
|
|
- Track message lifecycle timestamps: sent, delivered, read, failed
|
|
|
|
## Suggested Enums
|
|
### User Status
|
|
- active
|
|
- inactive
|
|
- suspended
|
|
|
|
### Template Status
|
|
- draft
|
|
- pending
|
|
- approved
|
|
- rejected
|
|
- archived
|
|
|
|
### Campaign Status
|
|
- draft
|
|
- scheduled
|
|
- processing
|
|
- completed
|
|
- paused
|
|
- failed
|
|
- cancelled
|
|
|
|
### Message Status
|
|
- queued
|
|
- sent
|
|
- delivered
|
|
- read
|
|
- failed
|