-
Notifications
You must be signed in to change notification settings - Fork 3
/
entity-model.puml
99 lines (73 loc) · 2.02 KB
/
entity-model.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
@startuml
skinparam dpi 200
skinparam classAttributeFontSize 8
skinparam classArrowFontSize 9
skinparam classFontSize 10
skinparam nodesep 90
skinparam ranksep 40
hide stereotype
skinparam class {
BackgroundColor White
BackgroundColor<<Tournament>> LightPink
BackgroundColor<<User>> LightBlue
BackgroundColor<<Team>> LightGreen
BackgroundColor<<Match>> LightYellow
}
abstract class User <<User>> {
String username, password, email
}
class TournamentMaster <<User>> extends User {
}
class Player <<User>> extends User {
}
class Team <<Team>> {
String name, game, level
Integer maxPlayers
}
Team "1..*" -- "*" Player: joins <
Team "*" -- "1" Player: leads <
class TeamInvitation <<Team>> {
String message
}
Player "1" -left- "*" TeamInvitation: creates >
Player "*" -- "*" TeamInvitation: invites <
TeamInvitation "*" -- "1" Team: invitesTo >
class Tournament <<Tournament>> {
String name, level, game, type, description
Integer minParticipants, maxParticipants,
Integer minTeamPlayers, maxTeamPlayers
Date limitDate
}
Tournament "*" -- "1" TournamentMaster: creates <
Tournament "*" -- "*" Team: participates <
class TournamentInvitation <<Tournament>> {
String message
}
TournamentInvitation "*" -- "1" User: creates <
TournamentInvitation "*" -- "1" Tournament: invitesTo >
TournamentInvitation "*" -- "*" Team: invites >
class Classification <<Tournament>> {
}
Classification "1" -- "1" Tournament: forA >
Classification "*" -- "*" Team: classifies >
class Round <<Round>> {
Integer bestOf
Integer numTeams
}
Round "*" -- "0..1" Round: nextRound
Round "1" -- "1..*" Match: matchesToPlay
Round "1" -- "0..1" Match: currentMatch
Round "1..*" -- "1" Tournament: partOf >
Round "*" -- "2..*" Team: faces >
Round "*" -- "1" Team: wins <
class Match <<Match>> {
String description
}
Match "*" -- "1" Team: wins <
class MatchResult <<Match>> {
String result
}
MatchResult "*" -up- "0..1" Match: of >
MatchResult "*" -- "1" Player: indicates <
MatchResult "*" -- "1" Team: setsWinner >
@enduml