Add ER diagram for EventSpace schema using Mermaid

This commit introduces a comprehensive Entity Relationship (ER) diagram for the EventSpace schema in Mermaid format. It documents key entities, their attributes, and relationships, providing a clear visualization of the database structure. This will aid in understanding and maintaining the data model.
This commit is contained in:
2025-02-27 18:03:08 +01:00
parent 1b2db7d5f4
commit 3ecf5fee2e

View File

@@ -0,0 +1,237 @@
erDiagram
User ||--o{ Event : "creates/manages"
User {
uuid id PK
string email
string password_hash
string first_name
string last_name
string phone_number
datetime created_at
datetime updated_at
boolean is_active
boolean is_superuser
json preferences
}
Event ||--o{ Guest : "invites"
Event ||--o{ GiftItem : "contains"
Event ||--o{ EventMedia : "has"
Event ||--o{ EventUpdate : "has"
Event ||--o{ EventTheme : "uses"
Event {
uuid id PK
string title
string slug UK
string description
string location_name
string location_address
string location_url
datetime event_date
time event_start_time
time event_end_time
string timezone
datetime rsvp_deadline
boolean is_public
string access_code
uuid created_by FK
uuid theme_id FK
json custom_theme_settings
json additional_info
datetime created_at
datetime updated_at
boolean is_active
boolean rsvp_enabled
boolean gift_registry_enabled
boolean updates_enabled
integer max_guests_per_invitation
string contact_email
string contact_phone
}
Guest ||--o{ RSVP : "submits"
Guest {
uuid id PK
uuid event_id FK
string name
string email
string phone
string invitation_code UK
datetime invited_at
boolean email_sent
datetime email_sent_at
integer reminder_count
datetime last_reminder_sent
string relationship
string notes
json address
json custom_fields
datetime created_at
datetime updated_at
}
RSVP {
uuid id PK
uuid guest_id FK
uuid event_id FK
boolean attending
integer number_of_adults
integer number_of_children
string dietary_restrictions
string message
string additional_guests_names
datetime responded_at
string ip_address
string user_agent
json custom_responses
datetime created_at
datetime updated_at
}
GiftItem ||--o{ GiftReservation : "has"
GiftItem {
uuid id PK
uuid event_id FK
string name
string description
string image_url
decimal price
string currency
string purchase_url
integer priority
boolean is_group_gift
decimal amount_contributed
integer quantity_requested
integer quantity_remaining
boolean is_custom_amount
decimal min_custom_amount
boolean is_visible
json category_tags
json additional_details
datetime created_at
datetime updated_at
}
GiftReservation {
uuid id PK
uuid gift_item_id FK
uuid guest_id FK "nullable"
string reserver_name
string reserver_email
string reserver_phone
integer quantity
decimal amount
boolean is_anonymous
datetime reserved_at
string reservation_code
string message
boolean is_purchased
datetime purchased_at
datetime created_at
datetime updated_at
}
EventMedia {
uuid id PK
uuid event_id FK
string media_type
string title
string description
string file_path
string url
string thumbnail_url
integer display_order
boolean is_featured
boolean is_public
string alt_text
string credit
datetime upload_date
json metadata
datetime created_at
datetime updated_at
}
EventTheme {
uuid id PK
string name
string description
string preview_image_url
json color_palette
json fonts
json animations
json layout_options
json component_styles
boolean is_active
datetime created_at
datetime updated_at
}
EventUpdate {
uuid id PK
uuid event_id FK
string title
string content
boolean is_important
boolean is_pinned
boolean send_notification
boolean notification_sent
datetime notification_sent_at
datetime publish_date
datetime created_at
datetime updated_at
}
EmailTemplate {
uuid id PK
string name
string subject
string html_content
string text_content
string description
string template_type
json variables
boolean is_active
datetime created_at
datetime updated_at
}
Setting {
string key PK
string value
string description
string category
datetime created_at
datetime updated_at
}
NotificationLog {
uuid id PK
string notification_type
uuid event_id FK
uuid guest_id FK "nullable"
string recipient
string subject
string content_preview
boolean is_sent
string error_message
datetime sent_at
datetime created_at
}
EventActivity {
uuid id PK
uuid event_id FK
uuid user_id FK "nullable"
uuid guest_id FK "nullable"
string activity_type
string description
json context_data
string ip_address
datetime created_at
}
EventTheme ||--o{ Event : "applied to"
Guest ||--o{ GiftReservation : "makes"
Event ||--o{ RSVP : "receives"
Event ||--o{ EventActivity : "logs"
Event ||--o{ NotificationLog : "generates"