er.html•11 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<div class="mermaid" id="er-diagram">
erDiagram
Account {
xidDOTID id
timeDOTTime created_at
timeDOTTime updated_at
timeDOTTime deleted_at
timeDOTTime indexed_at
string handle
string name
string bio
accountDOTKind kind
bool admin
LBRACKRBRACKschemaDOTExternalLink links
mapLBRACKstringRBRACKinterface {} metadata
xidDOTID invited_by_id
}
AccountFollow {
xidDOTID id
timeDOTTime created_at
xidDOTID follower_account_id
xidDOTID following_account_id
}
AccountRoles {
xidDOTID id
timeDOTTime created_at
xidDOTID account_id
xidDOTID role_id
bool badge
}
Asset {
xidDOTID id
timeDOTTime created_at
timeDOTTime updated_at
string filename
int size
string mime_type
mapLBRACKstringRBRACKinterface {} metadata
xidDOTID account_id
xidDOTID parent_asset_id
}
Authentication {
xidDOTID id
timeDOTTime created_at
timeDOTTime expires_at
string service
string token_type
string identifier
string token
string name
bool disabled
mapLBRACKstringRBRACKinterface {} metadata
xidDOTID account_authentication
}
Category {
xidDOTID id
timeDOTTime created_at
timeDOTTime updated_at
string name
string slug
string description
string colour
int sort
bool admin
xidDOTID parent_category_id
xidDOTID cover_image_asset_id
mapLBRACKstringRBRACKinterface {} metadata
}
Collection {
xidDOTID id
timeDOTTime created_at
timeDOTTime updated_at
timeDOTTime indexed_at
string name
string slug
string description
xidDOTID cover_asset_id
collectionDOTVisibility visibility
}
CollectionNode {
timeDOTTime created_at
xidDOTID collection_id
xidDOTID node_id
string membership_type
}
CollectionPost {
timeDOTTime created_at
xidDOTID collection_id
xidDOTID post_id
string membership_type
}
Email {
xidDOTID id
timeDOTTime created_at
xidDOTID account_id
string email_address
string verification_code
bool verified
}
Event {
xidDOTID id
timeDOTTime created_at
timeDOTTime updated_at
timeDOTTime deleted_at
timeDOTTime indexed_at
string name
string slug
string description
timeDOTTime start_time
timeDOTTime end_time
string participation_policy
eventDOTVisibility visibility
string location_type
string location_name
string location_address
float64 location_latitude
float64 location_longitude
string location_url
int capacity
mapLBRACKstringRBRACKinterface {} metadata
}
EventParticipant {
xidDOTID id
timeDOTTime created_at
string role
string status
xidDOTID account_id
xidDOTID event_id
}
Invitation {
xidDOTID id
timeDOTTime created_at
timeDOTTime updated_at
timeDOTTime deleted_at
string message
xidDOTID creator_account_id
}
LikePost {
xidDOTID id
timeDOTTime created_at
xidDOTID account_id
xidDOTID post_id
}
Link {
xidDOTID id
timeDOTTime created_at
string url
string slug
string domain
string title
string description
xidDOTID primary_asset_id
xidDOTID favicon_asset_id
}
MentionProfile {
xidDOTID id
timeDOTTime created_at
xidDOTID account_id
xidDOTID post_id
}
Node {
xidDOTID id
timeDOTTime created_at
timeDOTTime updated_at
timeDOTTime deleted_at
timeDOTTime indexed_at
string name
string slug
string description
string content
xidDOTID parent_node_id
bool hide_child_tree
xidDOTID account_id
xidDOTID property_schema_id
xidDOTID primary_asset_id
xidDOTID link_id
nodeDOTVisibility visibility
lexorankDOTKey sort
mapLBRACKstringRBRACKinterface {} metadata
}
Notification {
xidDOTID id
timeDOTTime created_at
timeDOTTime deleted_at
string event_type
string datagraph_kind
xidDOTID datagraph_id
bool read
xidDOTID owner_account_id
xidDOTID source_account_id
}
Post {
xidDOTID id
timeDOTTime created_at
timeDOTTime updated_at
timeDOTTime deleted_at
timeDOTTime indexed_at
bool first
string title
string slug
bool pinned
timeDOTTime last_reply_at
xidDOTID root_post_id
xidDOTID reply_to_post_id
string body
string short
mapLBRACKstringRBRACKinterface {} metadata
postDOTVisibility visibility
xidDOTID account_posts
xidDOTID category_id
xidDOTID link_id
}
PostRead {
xidDOTID id
xidDOTID root_post_id
xidDOTID account_id
timeDOTTime last_seen_at
}
Property {
xidDOTID id
timeDOTTime created_at
xidDOTID node_id
xidDOTID field_id
string value
}
PropertySchema {
xidDOTID id
}
PropertySchemaField {
xidDOTID id
string name
string type
string sort
xidDOTID schema_id
}
Question {
xidDOTID id
timeDOTTime created_at
timeDOTTime indexed_at
string slug
string query
string result
mapLBRACKstringRBRACKinterface {} metadata
xidDOTID account_id
xidDOTID parent_question_id
}
React {
xidDOTID id
timeDOTTime created_at
xidDOTID account_id
xidDOTID post_id
string emoji
}
Report {
xidDOTID id
timeDOTTime created_at
timeDOTTime updated_at
xidDOTID target_id
string target_kind
xidDOTID reported_by_id
xidDOTID handled_by_id
string comment
string reason
string status
}
Role {
xidDOTID id
timeDOTTime created_at
timeDOTTime updated_at
string name
string colour
LBRACKRBRACKstring permissions
float64 sort_key
}
Session {
xidDOTID id
timeDOTTime created_at
xidDOTID account_id
timeDOTTime expires_at
timeDOTTime revoked_at
}
Setting {
string id
string value
timeDOTTime updated_at
}
Tag {
xidDOTID id
timeDOTTime created_at
string name
}
Account |o--o{ Session : "sessions/account"
Account |o--o{ Email : "emails/account"
Account |o--o{ Notification : "notifications/owner"
Account |o--o{ Notification : "triggered_notifications/source"
Account |o--o{ AccountFollow : "following/follower"
Account |o--o{ AccountFollow : "followed_by/following"
Account |o--o{ Invitation : "invitations/creator"
Account |o--o{ Post : "posts/author"
Account |o--o{ Question : "questions/author"
Account |o--o{ React : "reacts/account"
Account |o--o{ LikePost : "likes/account"
Account |o--o{ MentionProfile : "mentions/account"
Account |o--o{ Authentication : "authentication/account"
Account }o--o{ Tag : "tags/accounts"
Account |o--o{ Collection : "collections/owner"
Account |o--o{ Node : "nodes/owner"
Account |o--o{ Asset : "assets/owner"
Account |o--o{ EventParticipant : "events/account"
Account |o--o{ PostRead : "post_reads/account"
Account |o--o{ Report : "reports/reported_by"
Account |o--o{ Report : "handled_reports/handled_by"
AccountRoles }o--o| Account : "account"
AccountRoles }o--o| Role : "role"
Asset |o--o{ Asset : "assets/parent"
Asset |o--o{ Event : "event/primary_image"
Category |o--o{ Post : "posts/category"
Category |o--o{ Category : "children/parent"
Category }o--o| Asset : "cover_image"
Collection }o--o| Asset : "cover_image"
Collection }o--o{ Post : "posts/collections"
Collection }o--o{ Node : "nodes/collections"
CollectionNode }o--o| Collection : "collection"
CollectionNode }o--o| Node : "node"
CollectionPost }o--o| Collection : "collection"
CollectionPost }o--o| Post : "post"
Event |o--o{ EventParticipant : "participants/event"
Invitation |o--o{ Account : "invited/invited_by"
Link |o--o{ Post : "posts/link"
Link }o--o{ Post : "post_content_references/content_links"
Link |o--o{ Node : "nodes/link"
Link }o--o{ Node : "node_content_references/content_links"
Link }o--o| Asset : "primary_image"
Link }o--o| Asset : "favicon_image"
Link }o--o{ Asset : "assets/links"
Node |o--o{ Node : "nodes/parent"
Node }o--o| Asset : "primary_image"
Node }o--o{ Asset : "assets/nodes"
Node |o--o{ Property : "properties/node"
Post |o--o{ Post : "posts/root"
Post |o--o{ Post : "replies/replyTo"
Post |o--o{ React : "reacts/Post"
Post |o--o{ LikePost : "likes/Post"
Post |o--o{ MentionProfile : "mentions/Post"
Post }o--o{ Asset : "assets/posts"
Post |o--o{ Event : "event/thread"
Post |o--o{ PostRead : "post_reads/root_post"
PropertySchema |o--o{ Node : "node/property_schema"
PropertySchema |o--o{ PropertySchemaField : "fields/schema"
PropertySchemaField |o--o{ Property : "properties/schema"
Question |o--o{ Question : "parent_question/parent"
Role }o--o{ Account : "accounts/roles"
Tag }o--o{ Post : "posts/tags"
Tag }o--o{ Node : "nodes/tags"
</div>
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
<script src="https://unpkg.com/panzoom@9.4.3/dist/panzoom.min.js"></script>
<script>
mermaid.mermaidAPI.initialize({
startOnLoad: true,
});
var observer = new MutationObserver((event) => {
document.querySelectorAll('text[id^=text-entity]').forEach(text => {
text.textContent = text.textContent.replace('DOT', '.');
text.textContent = text.textContent.replace('STAR', '*');
text.textContent = text.textContent.replace('LBRACK', '[');
text.textContent = text.textContent.replace('RBRACK', ']');
});
observer.disconnect();
panzoom(document.getElementById('er-diagram'));
});
observer.observe(document.getElementById('er-diagram'), { attributes: true, childList: true });
</script>
</body>
</html>