10
UMLClass
50
60
210
240
DBUser
--
id: Long
nick: String
name: String
chats: Set<DBChat>
status: UserStatus
created: Instant
lastSeen: Instant
deleted: Boolean
avatar: DBAvatar
passwordHash: String
authToken: String
authTokenExpiration: Instant
--
+toCommon(): User
UMLClass
380
330
290
160
DBMessage
--
id: Long
sender: DBUser
forwarded: Boolean
deleted: Boolean
statuses: Map<DBUser, DBMessageStatus>
text: String
attachment: DBAttachment
--
+toCommon(): Message
UMLClass
770
320
210
100
DBMessageStatus
--
id: Long
status: MessageStatus
timestamp: Instant
--
+toCommon(): MessageStatus
UMLClass
770
440
180
120
DBAttachment
--
id: Long
name: String
type: AttachmentType
url: String
--
+toCommon(): Attachment
UMLClass
510
70
200
180
DBChat
--
id: Long
name: String
members: Set<DBUser>
admins: Set<DBUser>
messages: Set<DBMessage>
avatar: DBAvatar
allowJoining: Boolean
allowAttachments: Boolean
--
+toCommon(): Chat
Relation
250
100
280
40
lt=<->
m1=0..n
m2=0..n
10.0;10.0;260.0;10.0
Relation
600
240
50
110
lt=->
m2=0..n
10.0;10.0;10.0;90.0
Relation
660
360
130
40
lt=->
m2=0..n
10.0;10.0;110.0;10.0
Relation
660
470
130
40
lt=->
m2=0..1
10.0;10.0;110.0;10.0
Relation
140
290
260
150
lt=<-
m1=0..n
10.0;10.0;10.0;130.0;240.0;130.0
UMLPackage
10
0
1010
590
envoy.server.data
--
bg=#CCCCCC
UMLClass
90
680
170
130
User
--
id: long
nick: String
name: String
status: UserStatus
created: Instant
deleted: boolean
UMLClass
340
680
190
100
UserStatus
--
_+ONLINE: UserStatus_
_+AWAY: UserStatus_
_+BUSY: UserStatus_
_+OFFLINE: UserStatus_
Relation
250
730
110
30
lt=<-
90.0;10.0;10.0;10.0
UMLClass
340
150
100
80
DBAvatar
--
id: Long
edited: Instant
url: String
layer=1
Relation
250
190
110
40
lt=<-
m1=0..1
90.0;10.0;10.0;10.0
Relation
430
190
100
40
lt=<-
m1=0..1
10.0;10.0;80.0;10.0
UMLClass
610
680
180
130
Chat
--
id: long
name: String
deceased: boolean
members: Set<User>
admins: Set<User>
messages: List<Message>