modcomms/documentation/architecture/diagrams/04_database_erd.mmd
michael b6078cf534 Add comprehensive Technical Architecture PDF documentation
Generate a professional 22-page A4 PDF covering the full ModComms system
architecture including: system overview, multi-agent AI pipeline, WebSocket
analysis flow, database schema (15 tables), frontend component hierarchy,
Azure AD authentication & RBAC, knowledge base processing pipeline,
deployment architecture, REST API reference, and appendices.

Includes 8 Mermaid diagrams rendered to high-res PNGs, styled tables,
and consistent Barclays design tokens throughout.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 13:42:59 -06:00

167 lines
3.9 KiB
Text

erDiagram
agencies ||--o{ users : "has"
agencies ||--o{ campaigns : "owns"
users ||--o{ campaigns : "creates"
users ||--o{ proofs : "creates"
users ||--o{ flagged_items : "submits"
users ||--o{ resolved_items : "submits"
users ||--o{ user_change_logs : "subject"
campaigns ||--o{ proofs : "contains"
proofs ||--o{ proof_versions : "has"
proof_versions ||--o{ flagged_items : "has"
proof_versions ||--o{ resolved_items : "has"
proof_versions ||--o{ error_items : "has"
knowledge_bases ||--o{ source_documents : "has"
knowledge_bases ||--o{ spec_versions : "has"
knowledge_bases ||--o{ processing_jobs : "has"
dropdown_options ||--o{ dropdown_options : "parent"
agencies {
uuid id PK
string name UK
timestamp created_at
}
users {
uuid id PK
string azure_ad_oid UK
string email
string name
string role
uuid agency_id FK
timestamp created_at
}
user_change_logs {
uuid id PK
uuid user_id FK
uuid changed_by_id FK
string change_type
string field_changed
string old_value
string new_value
timestamp created_at
}
campaigns {
uuid id PK
string name
string workfront_id
string client_lead
string agency_lead
string brand_guidelines
string status
uuid agency_id FK
uuid created_by FK
timestamp created_at
timestamp updated_at
}
proofs {
uuid id PK
uuid campaign_id FK
string proof_name
string channel
string sub_channel
string proof_type
string workfront_id
uuid created_by FK
timestamp created_at
}
proof_versions {
uuid id PK
uuid proof_id FK
integer version
string file_storage_key
text thumbnail_url
jsonb agent_review
string overall_status
string file_hash
boolean is_identical_file
timestamp created_at
}
flagged_items {
uuid id PK
uuid proof_version_id FK
string agent_flagged
text comments
uuid submitter_id FK
timestamp created_at
}
resolved_items {
uuid id PK
uuid proof_version_id FK
string agent
text issue
text resolution
uuid submitter_id FK
timestamp created_at
}
error_items {
uuid id PK
uuid proof_version_id FK
text error_summary
timestamp created_at
}
knowledge_bases {
uuid id PK
string agent_key UK
string display_name
text description
timestamp created_at
}
source_documents {
uuid id PK
uuid knowledge_base_id FK
string filename
string file_storage_key
integer file_size_bytes
string mime_type
uuid uploaded_by_id FK
string uploaded_by_name
text parsed_markdown
string parse_status
timestamp created_at
}
spec_versions {
uuid id PK
uuid knowledge_base_id FK
integer version_number
text content
jsonb source_document_ids
uuid generated_by_id FK
boolean is_active
integer char_count
timestamp created_at
}
processing_jobs {
uuid id PK
uuid knowledge_base_id FK
string status
uuid triggered_by_id FK
integer total_documents
integer parsed_documents
uuid spec_version_id FK
text error_message
jsonb log
timestamp started_at
timestamp completed_at
timestamp created_at
}
dropdown_options {
uuid id PK
string option_type
uuid parent_id FK
string value
integer display_order
timestamp created_at
}