Files
MyClub/diagrams/db-models.mmd
T
Tomas Dvorak c941313fd5 dev day #92
2025-11-14 15:53:12 +01:00

123 lines
3.1 KiB
Plaintext

%%{init: {
'theme': 'neutral',
'flowchart': { 'curve': 'linear' },
'themeCSS': '.edgePath path { stroke-dasharray: 6 4; animation: dash 18s linear infinite; } @keyframes dash { to { stroke-dashoffset: -1000; } }'
}}%%
flowchart TB
classDef grp fill:#0f172a,stroke:#334155,color:#e5e7eb;
classDef model fill:#111827,stroke:#475569,color:#e5e7eb;
subgraph CORE["Core"]
direction LR
m_settings["Settings"]:::model
m_user["User"]:::model
m_user_profile["UserProfile"]:::model
end
subgraph CONTENT["Content"]
direction LR
m_article["Article"]:::model
m_category["Category"]:::model
m_page_el["PageElementConfig"]:::model
m_uploaded["UploadedFile"]:::model
m_file_usage["FileUsage"]:::model
end
subgraph NAV["Navigation"]
direction LR
m_nav_item["NavigationItem"]:::model
m_social["SocialLink"]:::model
m_short["ShortLink"]:::model
m_click["LinkClick"]:::model
end
subgraph MATCHES["Matches & Teams"]
direction LR
m_team["Team"]:::model
m_player["Player"]:::model
m_match_over["MatchOverride"]:::model
m_team_logo_over["TeamLogoOverride"]:::model
m_comp_alias["CompetitionAlias"]:::model
m_score_state["ScoreboardState"]:::model
end
subgraph POLLS["Polls"]
direction LR
m_poll["Poll"]:::model
m_poll_opt["PollOption"]:::model
m_poll_vote["PollVote"]:::model
end
subgraph SWEEPSTAKES["Sweepstakes"]
direction LR
m_sw["Sweepstake"]:::model
m_sw_prize["SweepstakePrize"]:::model
m_sw_entry["SweepstakeEntry"]:::model
m_sw_winner["SweepstakeWinner"]:::model
end
subgraph COMMENTS["Comments & Moderation"]
direction LR
m_comment["Comment"]:::model
m_comment_react["CommentReaction"]:::model
m_comment_ban["CommentBan"]:::model
m_unban_req["UnbanRequest"]:::model
m_comment_rep["CommentReport"]:::model
end
subgraph CONTACTS["Contacts & Newsletter"]
direction LR
m_contact_cat["ContactCategory"]:::model
m_contact["Contact"]:::model
m_contact_msg["ContactMessage"]:::model
m_news_sub["NewsletterSubscription"]:::model
m_email_log["EmailLog (models.email)"]:::model
end
subgraph ENGAGE["Engagement & Rewards"]
direction LR
m_points_tx["PointsTransaction"]:::model
m_ach["Achievement"]:::model
m_user_ach["UserAchievement"]:::model
m_reward_item["RewardItem"]:::model
m_reward_red["RewardRedemption"]:::model
end
subgraph SHOP["Shop"]
direction LR
m_cloth["Clothing"]:::model
end
subgraph GALLERY["Gallery"]
direction LR
m_zonerama_album["ZoneramaAlbum (derived)"]:::model
end
subgraph ERRORS["Error Tracking"]
direction LR
m_error["ErrorEvent"]:::model
end
%% (Optional) Indicative relationships (no strict cardinalities)
%% Using simple arrows to avoid ER notation parse issues
m_article --> m_category
m_article --> m_user
m_file_usage --> m_uploaded
m_click --> m_short
m_comment_react --> m_comment
m_comment_ban --> m_user
m_unban_req --> m_user
m_comment_rep --> m_comment
m_user_profile --> m_user
m_points_tx --> m_user
m_user_ach --> m_user
m_user_ach --> m_ach
m_reward_red --> m_reward_item
m_sw_entry --> m_sw
m_sw_winner --> m_sw
m_poll_opt --> m_poll
m_poll_vote --> m_poll
m_contact_msg --> m_contact
m_nav_item --> m_article