Skip to content

Channels & Members

meesdekker.xyz edited this page Aug 4, 2024 · 4 revisions
		┌─────────────────────────────────────────────────────────────────────────┐
		│                                  User                                   │
		├─────────────────────────────────────────────────────────────────────────┤
		│ ┌───────────────┐  ┌───────────┐  ┌──────────┐  ┌─────────────────────┐ │
		│ │   username    │  │  nickname │  │ realname │  │      hostname       │ │
		│ └───────────────┘  └───────────┘  └──────────┘  └─────────────────────┘ │
		│ ┌─────────────────────────────────────────────────────────────────────┐ │
		│ │                           handshake                                 │ │
		│ └─────────────────────────────────────────────────────────────────────┘ │
		└───────────────────────────────────┬─────────────────────────────────────┘
		                                    │
		                            inherits│(1:1)
		                                    │
		                                    ▼
		┌─────────────────────────────────────────────────────────────────────────┐
		│                             ChannelMember                               │
		├─────────────────────────────────────────────────────────────────────────┤
		│ ┌─────────────────────────────────────────────────────────────────────┐ │
		│ │                              modes                                  │ │
		│ └─────────────────────────────────────────────────────────────────────┘ │
		└───────────────────────────────────┬─────────────────────────────────────┘
		                                    │
		                          belongs to│(N:1)
		                                    │
		                                    ▼
		┌─────────────────────────────────────────────────────────────────────────┐
		│                               Channel                                   │
		├─────────────────────────────────────────────────────────────────────────┤
		│ ┌───────────┐  ┌──────────┐  ┌───────┐  ┌──────────────────────────────┐│
		│ │   name    │  │ password │  │ topic │  │            modes             ││
		│ └───────────┘  └──────────┘  └───────┘  └──────────────────────────────┘│
		│ ┌─────────────────────────────────────────────────────────────────────┐ │
		│ │                       vector<ChannelMember>                         │ │
		│ └─────────────────────────────────────────────────────────────────────┘ │
		└───────────────────────────────────┬─────────────────────────────────────┘
		                                    │
		                              contains (1:N)
		                                    │
		                                    ▼
		┌─────────────────────────────────────────────────────────────────────────┐
		│                        Channel Collection                               │
		│                  (Managed by Server or Controller)                      │
		├─────────────────────────────────────────────────────────────────────────┤
		│ ┌─────────────────────────────────────────────────────────────────────┐ │
		│ │                       vector<Channel>                               │ │
		│ └─────────────────────────────────────────────────────────────────────┘ │
		└─────────────────────────────────────────────────────────────────────────┘

Clone this wiki locally