File size: 38,022 Bytes
da43f5e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
 -->
<!-- Title: %3 Pages: 1 -->
<svg width="2044pt" height="1238pt"
 viewBox="0.00 0.00 2043.50 1238.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 1202)">
<title>%3</title>
<polygon fill="white" stroke="transparent" points="-36,36 -36,-1202 2007.5,-1202 2007.5,36 -36,36"/>
<!-- Client -->
<g id="node1" class="node">
<title>Client</title>
<path fill="#e8e8e8" stroke="transparent" d="M1406,-932C1406,-932 1650,-932 1650,-932 1656,-932 1662,-938 1662,-944 1662,-944 1662,-1150 1662,-1150 1662,-1156 1656,-1162 1650,-1162 1650,-1162 1406,-1162 1406,-1162 1400,-1162 1394,-1156 1394,-1150 1394,-1150 1394,-944 1394,-944 1394,-938 1400,-932 1406,-932"/>
<polygon fill="#bebebe" stroke="transparent" points="1395,-1139 1395,-1161 1661,-1161 1661,-1139 1395,-1139"/>
<text text-anchor="start" x="1512.5" y="-1148.2" font-family="Arial" font-weight="bold" font-size="11.00">Client</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-1129 1395,-1139 1661,-1139 1661,-1129 1395,-1129"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-1107 1395,-1129 1661,-1129 1661,-1107 1395,-1107"/>
<text text-anchor="start" x="1400" y="-1115.2" font-family="Arial" font-size="11.00">&#45; clientId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-1085 1395,-1107 1661,-1107 1661,-1085 1395,-1085"/>
<text text-anchor="start" x="1400" y="-1093.2" font-family="Arial" font-size="11.00">+ companyName : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-1063 1395,-1085 1661,-1085 1661,-1063 1395,-1063"/>
<text text-anchor="start" x="1400" y="-1071.2" font-family="Arial" font-size="11.00">+ contactPerson : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-1041 1395,-1063 1661,-1063 1661,-1041 1395,-1041"/>
<text text-anchor="start" x="1400" y="-1049.2" font-family="Arial" font-size="11.00">+ email : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-1019 1395,-1041 1661,-1041 1661,-1019 1395,-1019"/>
<text text-anchor="start" x="1400" y="-1027.2" font-family="Arial" font-size="11.00">+ budget : double</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-1009 1395,-1019 1661,-1019 1661,-1009 1395,-1009"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-999 1395,-1009 1661,-1009 1661,-999 1395,-999"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-977 1395,-999 1661,-999 1661,-977 1395,-977"/>
<text text-anchor="start" x="1400" y="-985.2" font-family="Arial" font-size="11.00">+ Client(companyName: String, email: String) : Client</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-955 1395,-977 1661,-977 1661,-955 1395,-955"/>
<text text-anchor="start" x="1400" y="-963.2" font-family="Arial" font-size="11.00">+ postProject(title: String) : Project</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1395,-933 1395,-955 1661,-955 1661,-933 1395,-933"/>
<text text-anchor="start" x="1400" y="-941.2" font-family="Arial" font-size="11.00">+ hireFreelancer(freelancerId: String) : Contract</text>
<polygon fill="black" stroke="black" points="1394,-1139 1394,-1139 1662,-1139 1662,-1139 1394,-1139"/>
<polygon fill="black" stroke="black" points="1394,-1009 1394,-1009 1662,-1009 1662,-1009 1394,-1009"/>
<path fill="none" stroke="black" d="M1406,-932C1406,-932 1650,-932 1650,-932 1656,-932 1662,-938 1662,-944 1662,-944 1662,-1150 1662,-1150 1662,-1156 1656,-1162 1650,-1162 1650,-1162 1406,-1162 1406,-1162 1400,-1162 1394,-1156 1394,-1150 1394,-1150 1394,-944 1394,-944 1394,-938 1400,-932 1406,-932"/>
</g>
<!-- Project -->
<g id="node2" class="node">
<title>Project</title>
<path fill="#e8e8e8" stroke="transparent" d="M538.5,-608C538.5,-608 749.5,-608 749.5,-608 755.5,-608 761.5,-614 761.5,-620 761.5,-620 761.5,-826 761.5,-826 761.5,-832 755.5,-838 749.5,-838 749.5,-838 538.5,-838 538.5,-838 532.5,-838 526.5,-832 526.5,-826 526.5,-826 526.5,-620 526.5,-620 526.5,-614 532.5,-608 538.5,-608"/>
<polygon fill="#bebebe" stroke="transparent" points="528,-815 528,-837 761,-837 761,-815 528,-815"/>
<text text-anchor="start" x="625.5" y="-824.2" font-family="Arial" font-weight="bold" font-size="11.00">Project</text>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-805 528,-815 761,-815 761,-805 528,-805"/>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-783 528,-805 761,-805 761,-783 528,-783"/>
<text text-anchor="start" x="533" y="-791.2" font-family="Arial" font-size="11.00">&#45; projectId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-761 528,-783 761,-783 761,-761 528,-761"/>
<text text-anchor="start" x="533" y="-769.2" font-family="Arial" font-size="11.00">+ title : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-739 528,-761 761,-761 761,-739 528,-739"/>
<text text-anchor="start" x="533" y="-747.2" font-family="Arial" font-size="11.00">+ description : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-717 528,-739 761,-739 761,-717 528,-717"/>
<text text-anchor="start" x="533" y="-725.2" font-family="Arial" font-size="11.00">+ budget : double</text>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-695 528,-717 761,-717 761,-695 528,-695"/>
<text text-anchor="start" x="533" y="-703.2" font-family="Arial" font-size="11.00">+ deadline : Date</text>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-673 528,-695 761,-695 761,-673 528,-673"/>
<text text-anchor="start" x="533" y="-681.2" font-family="Arial" font-size="11.00">+ status : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-663 528,-673 761,-673 761,-663 528,-663"/>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-653 528,-663 761,-663 761,-653 528,-653"/>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-631 528,-653 761,-653 761,-631 528,-631"/>
<text text-anchor="start" x="533" y="-639.2" font-family="Arial" font-size="11.00">+ Project(title: String, budget: double) : Project</text>
<polygon fill="#e8e8e8" stroke="transparent" points="528,-609 528,-631 761,-631 761,-609 528,-609"/>
<text text-anchor="start" x="533" y="-617.2" font-family="Arial" font-size="11.00">+ addMilestone(milestone: Milestone) : void</text>
<polygon fill="black" stroke="black" points="527,-815 527,-815 762,-815 762,-815 527,-815"/>
<polygon fill="black" stroke="black" points="527,-663 527,-663 762,-663 762,-663 527,-663"/>
<path fill="none" stroke="black" d="M538.5,-608C538.5,-608 749.5,-608 749.5,-608 755.5,-608 761.5,-614 761.5,-620 761.5,-620 761.5,-826 761.5,-826 761.5,-832 755.5,-838 749.5,-838 749.5,-838 538.5,-838 538.5,-838 532.5,-838 526.5,-832 526.5,-826 526.5,-826 526.5,-620 526.5,-620 526.5,-614 532.5,-608 538.5,-608"/>
</g>
<!-- Client&#45;&gt;Project -->
<g id="edge1" class="edge">
<title>Client&#45;&gt;Project</title>
<path fill="none" stroke="#4a4a4a" d="M1423.83,-927.93C1423.83,-880.07 1423.83,-836 1423.83,-836 1423.83,-836 779.73,-836 779.73,-836"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="779.73,-832.5 769.73,-836 779.73,-839.5 779.73,-832.5"/>
<text text-anchor="middle" x="771.73" y="-838.8" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="1420.83" y="-920.73" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Contract -->
<g id="node5" class="node">
<title>Contract</title>
<path fill="#e8e8e8" stroke="transparent" d="M986.5,-4C986.5,-4 1249.5,-4 1249.5,-4 1255.5,-4 1261.5,-10 1261.5,-16 1261.5,-16 1261.5,-200 1261.5,-200 1261.5,-206 1255.5,-212 1249.5,-212 1249.5,-212 986.5,-212 986.5,-212 980.5,-212 974.5,-206 974.5,-200 974.5,-200 974.5,-16 974.5,-16 974.5,-10 980.5,-4 986.5,-4"/>
<polygon fill="#bebebe" stroke="transparent" points="976,-189 976,-211 1261,-211 1261,-189 976,-189"/>
<text text-anchor="start" x="1095.5" y="-198.2" font-family="Arial" font-weight="bold" font-size="11.00">Contract</text>
<polygon fill="#e8e8e8" stroke="transparent" points="976,-179 976,-189 1261,-189 1261,-179 976,-179"/>
<polygon fill="#e8e8e8" stroke="transparent" points="976,-157 976,-179 1261,-179 1261,-157 976,-157"/>
<text text-anchor="start" x="981" y="-165.2" font-family="Arial" font-size="11.00">&#45; contractId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="976,-135 976,-157 1261,-157 1261,-135 976,-135"/>
<text text-anchor="start" x="981" y="-143.2" font-family="Arial" font-size="11.00">+ clientId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="976,-113 976,-135 1261,-135 1261,-113 976,-113"/>
<text text-anchor="start" x="981" y="-121.2" font-family="Arial" font-size="11.00">+ freelancerId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="976,-91 976,-113 1261,-113 1261,-91 976,-91"/>
<text text-anchor="start" x="981" y="-99.2" font-family="Arial" font-size="11.00">+ projectId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="976,-69 976,-91 1261,-91 1261,-69 976,-69"/>
<text text-anchor="start" x="981" y="-77.2" font-family="Arial" font-size="11.00">+ startDate : Date</text>
<polygon fill="#e8e8e8" stroke="transparent" points="976,-59 976,-69 1261,-69 1261,-59 976,-59"/>
<polygon fill="#e8e8e8" stroke="transparent" points="976,-49 976,-59 1261,-59 1261,-49 976,-49"/>
<polygon fill="#e8e8e8" stroke="transparent" points="976,-27 976,-49 1261,-49 1261,-27 976,-27"/>
<text text-anchor="start" x="981" y="-35.2" font-family="Arial" font-size="11.00">+ Contract(clientId: String, freelancerId: String) : Contract</text>
<polygon fill="#e8e8e8" stroke="transparent" points="976,-5 976,-27 1261,-27 1261,-5 976,-5"/>
<text text-anchor="start" x="981" y="-13.2" font-family="Arial" font-size="11.00">+ terminate() : void</text>
<polygon fill="black" stroke="black" points="975,-189 975,-189 1262,-189 1262,-189 975,-189"/>
<polygon fill="black" stroke="black" points="975,-59 975,-59 1262,-59 1262,-59 975,-59"/>
<path fill="none" stroke="black" d="M986.5,-4C986.5,-4 1249.5,-4 1249.5,-4 1255.5,-4 1261.5,-10 1261.5,-16 1261.5,-16 1261.5,-200 1261.5,-200 1261.5,-206 1255.5,-212 1249.5,-212 1249.5,-212 986.5,-212 986.5,-212 980.5,-212 974.5,-206 974.5,-200 974.5,-200 974.5,-16 974.5,-16 974.5,-10 980.5,-4 986.5,-4"/>
</g>
<!-- Client&#45;&gt;Contract -->
<g id="edge5" class="edge">
<title>Client&#45;&gt;Contract</title>
<path fill="none" stroke="#4a4a4a" d="M1556.33,-927.6C1556.33,-674.69 1556.33,-108 1556.33,-108 1556.33,-108 1279.77,-108 1279.77,-108"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1279.77,-104.5 1269.77,-108 1279.77,-111.5 1279.77,-104.5"/>
<text text-anchor="middle" x="1271.77" y="-110.8" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="1553.33" y="-920.4" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Invoice -->
<g id="node8" class="node">
<title>Invoice</title>
<path fill="#e8e8e8" stroke="transparent" d="M1696,-306C1696,-306 1950,-306 1950,-306 1956,-306 1962,-312 1962,-318 1962,-318 1962,-502 1962,-502 1962,-508 1956,-514 1950,-514 1950,-514 1696,-514 1696,-514 1690,-514 1684,-508 1684,-502 1684,-502 1684,-318 1684,-318 1684,-312 1690,-306 1696,-306"/>
<polygon fill="#bebebe" stroke="transparent" points="1685,-491 1685,-513 1961,-513 1961,-491 1685,-491"/>
<text text-anchor="start" x="1804" y="-500.2" font-family="Arial" font-weight="bold" font-size="11.00">Invoice</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1685,-481 1685,-491 1961,-491 1961,-481 1685,-481"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1685,-459 1685,-481 1961,-481 1961,-459 1685,-459"/>
<text text-anchor="start" x="1690" y="-467.2" font-family="Arial" font-size="11.00">&#45; invoiceId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1685,-437 1685,-459 1961,-459 1961,-437 1685,-437"/>
<text text-anchor="start" x="1690" y="-445.2" font-family="Arial" font-size="11.00">+ freelancerId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1685,-415 1685,-437 1961,-437 1961,-415 1685,-415"/>
<text text-anchor="start" x="1690" y="-423.2" font-family="Arial" font-size="11.00">+ clientId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1685,-393 1685,-415 1961,-415 1961,-393 1685,-393"/>
<text text-anchor="start" x="1690" y="-401.2" font-family="Arial" font-size="11.00">+ amount : double</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1685,-371 1685,-393 1961,-393 1961,-371 1685,-371"/>
<text text-anchor="start" x="1690" y="-379.2" font-family="Arial" font-size="11.00">+ issueDate : Date</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1685,-361 1685,-371 1961,-371 1961,-361 1685,-361"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1685,-351 1685,-361 1961,-361 1961,-351 1685,-351"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1685,-329 1685,-351 1961,-351 1961,-329 1685,-329"/>
<text text-anchor="start" x="1690" y="-337.2" font-family="Arial" font-size="11.00">+ Invoice(freelancerId: String, amount: double) : Invoice</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1685,-307 1685,-329 1961,-329 1961,-307 1685,-307"/>
<text text-anchor="start" x="1690" y="-315.2" font-family="Arial" font-size="11.00">+ send() : void</text>
<polygon fill="black" stroke="black" points="1684,-491 1684,-491 1962,-491 1962,-491 1684,-491"/>
<polygon fill="black" stroke="black" points="1684,-361 1684,-361 1962,-361 1962,-361 1684,-361"/>
<path fill="none" stroke="black" d="M1696,-306C1696,-306 1950,-306 1950,-306 1956,-306 1962,-312 1962,-318 1962,-318 1962,-502 1962,-502 1962,-508 1956,-514 1950,-514 1950,-514 1696,-514 1696,-514 1690,-514 1684,-508 1684,-502 1684,-502 1684,-318 1684,-318 1684,-312 1690,-306 1696,-306"/>
</g>
<!-- Client&#45;&gt;Invoice -->
<g id="edge11" class="edge">
<title>Client&#45;&gt;Invoice</title>
<path fill="none" stroke="#4a4a4a" d="M1613.17,-927.93C1613.17,-743.56 1613.17,-410 1613.17,-410 1613.17,-410 1665.84,-410 1665.84,-410"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1665.84,-413.5 1675.84,-410 1665.84,-406.5 1665.84,-413.5"/>
<text text-anchor="middle" x="1673.84" y="-412.8" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="1610.17" y="-920.73" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Review -->
<g id="node10" class="node">
<title>Review</title>
<path fill="#e8e8e8" stroke="transparent" d="M1226.5,-306C1226.5,-306 1479.5,-306 1479.5,-306 1485.5,-306 1491.5,-312 1491.5,-318 1491.5,-318 1491.5,-502 1491.5,-502 1491.5,-508 1485.5,-514 1479.5,-514 1479.5,-514 1226.5,-514 1226.5,-514 1220.5,-514 1214.5,-508 1214.5,-502 1214.5,-502 1214.5,-318 1214.5,-318 1214.5,-312 1220.5,-306 1226.5,-306"/>
<polygon fill="#bebebe" stroke="transparent" points="1216,-491 1216,-513 1491,-513 1491,-491 1216,-491"/>
<text text-anchor="start" x="1334.5" y="-500.2" font-family="Arial" font-weight="bold" font-size="11.00">Review</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1216,-481 1216,-491 1491,-491 1491,-481 1216,-481"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1216,-459 1216,-481 1491,-481 1491,-459 1216,-459"/>
<text text-anchor="start" x="1221" y="-467.2" font-family="Arial" font-size="11.00">&#45; reviewId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1216,-437 1216,-459 1491,-459 1491,-437 1216,-437"/>
<text text-anchor="start" x="1221" y="-445.2" font-family="Arial" font-size="11.00">+ clientId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1216,-415 1216,-437 1491,-437 1491,-415 1216,-415"/>
<text text-anchor="start" x="1221" y="-423.2" font-family="Arial" font-size="11.00">+ freelancerId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1216,-393 1216,-415 1491,-415 1491,-393 1216,-393"/>
<text text-anchor="start" x="1221" y="-401.2" font-family="Arial" font-size="11.00">+ rating : int</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1216,-371 1216,-393 1491,-393 1491,-371 1216,-371"/>
<text text-anchor="start" x="1221" y="-379.2" font-family="Arial" font-size="11.00">+ comment : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1216,-361 1216,-371 1491,-371 1491,-361 1216,-361"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1216,-351 1216,-361 1491,-361 1491,-351 1216,-351"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1216,-329 1216,-351 1491,-351 1491,-329 1216,-329"/>
<text text-anchor="start" x="1221" y="-337.2" font-family="Arial" font-size="11.00">+ Review(clientId: String, freelancerId: String) : Review</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1216,-307 1216,-329 1491,-329 1491,-307 1216,-307"/>
<text text-anchor="start" x="1221" y="-315.2" font-family="Arial" font-size="11.00">+ updateRating(newRating: int) : void</text>
<polygon fill="black" stroke="black" points="1215,-491 1215,-491 1492,-491 1492,-491 1215,-491"/>
<polygon fill="black" stroke="black" points="1215,-361 1215,-361 1492,-361 1492,-361 1215,-361"/>
<path fill="none" stroke="black" d="M1226.5,-306C1226.5,-306 1479.5,-306 1479.5,-306 1485.5,-306 1491.5,-312 1491.5,-318 1491.5,-318 1491.5,-502 1491.5,-502 1491.5,-508 1485.5,-514 1479.5,-514 1479.5,-514 1226.5,-514 1226.5,-514 1220.5,-514 1214.5,-508 1214.5,-502 1214.5,-502 1214.5,-318 1214.5,-318 1214.5,-312 1220.5,-306 1226.5,-306"/>
</g>
<!-- Client&#45;&gt;Review -->
<g id="edge13" class="edge">
<title>Client&#45;&gt;Review</title>
<path fill="none" stroke="#4a4a4a" d="M1461.67,-927.93C1461.67,-927.93 1461.67,-528.13 1461.67,-528.13"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1465.17,-528.13 1461.67,-518.13 1458.17,-528.13 1465.17,-528.13"/>
<text text-anchor="middle" x="1459.67" y="-520.93" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="1458.67" y="-920.73" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Proposal -->
<g id="node4" class="node">
<title>Proposal</title>
<path fill="#e8e8e8" stroke="transparent" d="M736,-306C736,-306 1010,-306 1010,-306 1016,-306 1022,-312 1022,-318 1022,-318 1022,-502 1022,-502 1022,-508 1016,-514 1010,-514 1010,-514 736,-514 736,-514 730,-514 724,-508 724,-502 724,-502 724,-318 724,-318 724,-312 730,-306 736,-306"/>
<polygon fill="#bebebe" stroke="transparent" points="725,-491 725,-513 1021,-513 1021,-491 725,-491"/>
<text text-anchor="start" x="849" y="-500.2" font-family="Arial" font-weight="bold" font-size="11.00">Proposal</text>
<polygon fill="#e8e8e8" stroke="transparent" points="725,-481 725,-491 1021,-491 1021,-481 725,-481"/>
<polygon fill="#e8e8e8" stroke="transparent" points="725,-459 725,-481 1021,-481 1021,-459 725,-459"/>
<text text-anchor="start" x="730" y="-467.2" font-family="Arial" font-size="11.00">&#45; proposalId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="725,-437 725,-459 1021,-459 1021,-437 725,-437"/>
<text text-anchor="start" x="730" y="-445.2" font-family="Arial" font-size="11.00">+ freelancerId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="725,-415 725,-437 1021,-437 1021,-415 725,-415"/>
<text text-anchor="start" x="730" y="-423.2" font-family="Arial" font-size="11.00">+ projectId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="725,-393 725,-415 1021,-415 1021,-393 725,-393"/>
<text text-anchor="start" x="730" y="-401.2" font-family="Arial" font-size="11.00">+ bidAmount : double</text>
<polygon fill="#e8e8e8" stroke="transparent" points="725,-371 725,-393 1021,-393 1021,-371 725,-371"/>
<text text-anchor="start" x="730" y="-379.2" font-family="Arial" font-size="11.00">+ estimatedTime : int</text>
<polygon fill="#e8e8e8" stroke="transparent" points="725,-361 725,-371 1021,-371 1021,-361 725,-361"/>
<polygon fill="#e8e8e8" stroke="transparent" points="725,-351 725,-361 1021,-361 1021,-351 725,-351"/>
<polygon fill="#e8e8e8" stroke="transparent" points="725,-329 725,-351 1021,-351 1021,-329 725,-329"/>
<text text-anchor="start" x="730" y="-337.2" font-family="Arial" font-size="11.00">+ Proposal(freelancerId: String, projectId: String) : Proposal</text>
<polygon fill="#e8e8e8" stroke="transparent" points="725,-307 725,-329 1021,-329 1021,-307 725,-307"/>
<text text-anchor="start" x="730" y="-315.2" font-family="Arial" font-size="11.00">+ accept() : Contract</text>
<polygon fill="black" stroke="black" points="724,-491 724,-491 1022,-491 1022,-491 724,-491"/>
<polygon fill="black" stroke="black" points="724,-361 724,-361 1022,-361 1022,-361 724,-361"/>
<path fill="none" stroke="black" d="M736,-306C736,-306 1010,-306 1010,-306 1016,-306 1022,-312 1022,-318 1022,-318 1022,-502 1022,-502 1022,-508 1016,-514 1010,-514 1010,-514 736,-514 736,-514 730,-514 724,-508 724,-502 724,-502 724,-318 724,-318 724,-312 730,-306 736,-306"/>
</g>
<!-- Project&#45;&gt;Proposal -->
<g id="edge3" class="edge">
<title>Project&#45;&gt;Proposal</title>
<path fill="none" stroke="#4a4a4a" d="M742.75,-603.78C742.75,-603.78 742.75,-528.11 742.75,-528.11"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="746.25,-528.11 742.75,-518.11 739.25,-528.11 746.25,-528.11"/>
<text text-anchor="middle" x="740.75" y="-520.91" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="739.75" y="-596.58" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Milestone -->
<g id="node6" class="node">
<title>Milestone</title>
<path fill="#e8e8e8" stroke="transparent" d="M20,-306C20,-306 254,-306 254,-306 260,-306 266,-312 266,-318 266,-318 266,-502 266,-502 266,-508 260,-514 254,-514 254,-514 20,-514 20,-514 14,-514 8,-508 8,-502 8,-502 8,-318 8,-318 8,-312 14,-306 20,-306"/>
<polygon fill="#bebebe" stroke="transparent" points="9,-491 9,-513 265,-513 265,-491 9,-491"/>
<text text-anchor="start" x="111.5" y="-500.2" font-family="Arial" font-weight="bold" font-size="11.00">Milestone</text>
<polygon fill="#e8e8e8" stroke="transparent" points="9,-481 9,-491 265,-491 265,-481 9,-481"/>
<polygon fill="#e8e8e8" stroke="transparent" points="9,-459 9,-481 265,-481 265,-459 9,-459"/>
<text text-anchor="start" x="14" y="-467.2" font-family="Arial" font-size="11.00">&#45; milestoneId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="9,-437 9,-459 265,-459 265,-437 9,-437"/>
<text text-anchor="start" x="14" y="-445.2" font-family="Arial" font-size="11.00">+ projectId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="9,-415 9,-437 265,-437 265,-415 9,-415"/>
<text text-anchor="start" x="14" y="-423.2" font-family="Arial" font-size="11.00">+ title : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="9,-393 9,-415 265,-415 265,-393 9,-393"/>
<text text-anchor="start" x="14" y="-401.2" font-family="Arial" font-size="11.00">+ dueDate : Date</text>
<polygon fill="#e8e8e8" stroke="transparent" points="9,-371 9,-393 265,-393 265,-371 9,-371"/>
<text text-anchor="start" x="14" y="-379.2" font-family="Arial" font-size="11.00">+ isCompleted : boolean</text>
<polygon fill="#e8e8e8" stroke="transparent" points="9,-361 9,-371 265,-371 265,-361 9,-361"/>
<polygon fill="#e8e8e8" stroke="transparent" points="9,-351 9,-361 265,-361 265,-351 9,-351"/>
<polygon fill="#e8e8e8" stroke="transparent" points="9,-329 9,-351 265,-351 265,-329 9,-329"/>
<text text-anchor="start" x="14" y="-337.2" font-family="Arial" font-size="11.00">+ Milestone(title: String, dueDate: Date) : Milestone</text>
<polygon fill="#e8e8e8" stroke="transparent" points="9,-307 9,-329 265,-329 265,-307 9,-307"/>
<text text-anchor="start" x="14" y="-315.2" font-family="Arial" font-size="11.00">+ markCompleted() : void</text>
<polygon fill="black" stroke="black" points="8,-491 8,-491 266,-491 266,-491 8,-491"/>
<polygon fill="black" stroke="black" points="8,-361 8,-361 266,-361 266,-361 8,-361"/>
<path fill="none" stroke="black" d="M20,-306C20,-306 254,-306 254,-306 260,-306 266,-312 266,-318 266,-318 266,-502 266,-502 266,-508 260,-514 254,-514 254,-514 20,-514 20,-514 14,-514 8,-508 8,-502 8,-502 8,-318 8,-318 8,-312 14,-306 20,-306"/>
</g>
<!-- Project&#45;&gt;Milestone -->
<g id="edge7" class="edge">
<title>Project&#45;&gt;Milestone</title>
<path fill="none" stroke="#4a4a4a" d="M506.35,-723C506.35,-723 137,-723 137,-723 137,-723 137,-528.16 137,-528.16"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="506.35,-723 512.35,-719 518.35,-723 512.35,-727 506.35,-723"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="140.5,-528.16 137,-518.16 133.5,-528.16 140.5,-528.16"/>
<text text-anchor="middle" x="135" y="-520.96" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="515.35" y="-725.8" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- TimeEntry -->
<g id="node7" class="node">
<title>TimeEntry</title>
<path fill="#e8e8e8" stroke="transparent" d="M352,-306C352,-306 638,-306 638,-306 644,-306 650,-312 650,-318 650,-318 650,-502 650,-502 650,-508 644,-514 638,-514 638,-514 352,-514 352,-514 346,-514 340,-508 340,-502 340,-502 340,-318 340,-318 340,-312 346,-306 352,-306"/>
<polygon fill="#bebebe" stroke="transparent" points="341,-491 341,-513 649,-513 649,-491 341,-491"/>
<text text-anchor="start" x="467.5" y="-500.2" font-family="Arial" font-weight="bold" font-size="11.00">TimeEntry</text>
<polygon fill="#e8e8e8" stroke="transparent" points="341,-481 341,-491 649,-491 649,-481 341,-481"/>
<polygon fill="#e8e8e8" stroke="transparent" points="341,-459 341,-481 649,-481 649,-459 341,-459"/>
<text text-anchor="start" x="346" y="-467.2" font-family="Arial" font-size="11.00">&#45; entryId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="341,-437 341,-459 649,-459 649,-437 341,-437"/>
<text text-anchor="start" x="346" y="-445.2" font-family="Arial" font-size="11.00">+ freelancerId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="341,-415 341,-437 649,-437 649,-415 341,-415"/>
<text text-anchor="start" x="346" y="-423.2" font-family="Arial" font-size="11.00">+ projectId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="341,-393 341,-415 649,-415 649,-393 341,-393"/>
<text text-anchor="start" x="346" y="-401.2" font-family="Arial" font-size="11.00">+ hoursWorked : double</text>
<polygon fill="#e8e8e8" stroke="transparent" points="341,-371 341,-393 649,-393 649,-371 341,-371"/>
<text text-anchor="start" x="346" y="-379.2" font-family="Arial" font-size="11.00">+ date : Date</text>
<polygon fill="#e8e8e8" stroke="transparent" points="341,-361 341,-371 649,-371 649,-361 341,-361"/>
<polygon fill="#e8e8e8" stroke="transparent" points="341,-351 341,-361 649,-361 649,-351 341,-351"/>
<polygon fill="#e8e8e8" stroke="transparent" points="341,-329 341,-351 649,-351 649,-329 341,-329"/>
<text text-anchor="start" x="346" y="-337.2" font-family="Arial" font-size="11.00">+ TimeEntry(freelancerId: String, projectId: String) : TimeEntry</text>
<polygon fill="#e8e8e8" stroke="transparent" points="341,-307 341,-329 649,-329 649,-307 341,-307"/>
<text text-anchor="start" x="346" y="-315.2" font-family="Arial" font-size="11.00">+ calculatePay() : double</text>
<polygon fill="black" stroke="black" points="340,-491 340,-491 650,-491 650,-491 340,-491"/>
<polygon fill="black" stroke="black" points="340,-361 340,-361 650,-361 650,-361 340,-361"/>
<path fill="none" stroke="black" d="M352,-306C352,-306 638,-306 638,-306 644,-306 650,-312 650,-318 650,-318 650,-502 650,-502 650,-508 644,-514 638,-514 638,-514 352,-514 352,-514 346,-514 340,-508 340,-502 340,-502 340,-318 340,-318 340,-312 346,-306 352,-306"/>
</g>
<!-- Project&#45;&gt;TimeEntry -->
<g id="edge9" class="edge">
<title>Project&#45;&gt;TimeEntry</title>
<path fill="none" stroke="#4a4a4a" d="M565,-603.78C565,-603.78 565,-528.11 565,-528.11"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="568.5,-528.11 565,-518.11 561.5,-528.11 568.5,-528.11"/>
<text text-anchor="middle" x="563" y="-520.91" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="562" y="-596.58" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Freelancer -->
<g id="node3" class="node">
<title>Freelancer</title>
<path fill="#e8e8e8" stroke="transparent" d="M996.5,-619C996.5,-619 1239.5,-619 1239.5,-619 1245.5,-619 1251.5,-625 1251.5,-631 1251.5,-631 1251.5,-815 1251.5,-815 1251.5,-821 1245.5,-827 1239.5,-827 1239.5,-827 996.5,-827 996.5,-827 990.5,-827 984.5,-821 984.5,-815 984.5,-815 984.5,-631 984.5,-631 984.5,-625 990.5,-619 996.5,-619"/>
<polygon fill="#bebebe" stroke="transparent" points="986,-804 986,-826 1251,-826 1251,-804 986,-804"/>
<text text-anchor="start" x="1090.5" y="-813.2" font-family="Arial" font-weight="bold" font-size="11.00">Freelancer</text>
<polygon fill="#e8e8e8" stroke="transparent" points="986,-794 986,-804 1251,-804 1251,-794 986,-794"/>
<polygon fill="#e8e8e8" stroke="transparent" points="986,-772 986,-794 1251,-794 1251,-772 986,-772"/>
<text text-anchor="start" x="991" y="-780.2" font-family="Arial" font-size="11.00">&#45; freelancerId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="986,-750 986,-772 1251,-772 1251,-750 986,-750"/>
<text text-anchor="start" x="991" y="-758.2" font-family="Arial" font-size="11.00">+ name : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="986,-728 986,-750 1251,-750 1251,-728 986,-728"/>
<text text-anchor="start" x="991" y="-736.2" font-family="Arial" font-size="11.00">+ skills : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="986,-706 986,-728 1251,-728 1251,-706 986,-706"/>
<text text-anchor="start" x="991" y="-714.2" font-family="Arial" font-size="11.00">+ hourlyRate : double</text>
<polygon fill="#e8e8e8" stroke="transparent" points="986,-684 986,-706 1251,-706 1251,-684 986,-684"/>
<text text-anchor="start" x="991" y="-692.2" font-family="Arial" font-size="11.00">+ rating : double</text>
<polygon fill="#e8e8e8" stroke="transparent" points="986,-674 986,-684 1251,-684 1251,-674 986,-674"/>
<polygon fill="#e8e8e8" stroke="transparent" points="986,-664 986,-674 1251,-674 1251,-664 986,-664"/>
<polygon fill="#e8e8e8" stroke="transparent" points="986,-642 986,-664 1251,-664 1251,-642 986,-642"/>
<text text-anchor="start" x="991" y="-650.2" font-family="Arial" font-size="11.00">+ Freelancer(name: String, skills: String) : Freelancer</text>
<polygon fill="#e8e8e8" stroke="transparent" points="986,-620 986,-642 1251,-642 1251,-620 986,-620"/>
<text text-anchor="start" x="991" y="-628.2" font-family="Arial" font-size="11.00">+ applyToProject(projectId: String) : Proposal</text>
<polygon fill="black" stroke="black" points="985,-804 985,-804 1252,-804 1252,-804 985,-804"/>
<polygon fill="black" stroke="black" points="985,-674 985,-674 1252,-674 1252,-674 985,-674"/>
<path fill="none" stroke="black" d="M996.5,-619C996.5,-619 1239.5,-619 1239.5,-619 1245.5,-619 1251.5,-625 1251.5,-631 1251.5,-631 1251.5,-815 1251.5,-815 1251.5,-821 1245.5,-827 1239.5,-827 1239.5,-827 996.5,-827 996.5,-827 990.5,-827 984.5,-821 984.5,-815 984.5,-815 984.5,-631 984.5,-631 984.5,-625 990.5,-619 996.5,-619"/>
</g>
<!-- Freelancer&#45;&gt;Proposal -->
<g id="edge2" class="edge">
<title>Freelancer&#45;&gt;Proposal</title>
<path fill="none" stroke="#4a4a4a" d="M1012.17,-614.84C1012.17,-614.84 1012.17,-528.16 1012.17,-528.16"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1015.67,-528.16 1012.17,-518.16 1008.67,-528.16 1015.67,-528.16"/>
<text text-anchor="middle" x="1010.17" y="-520.96" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="1009.17" y="-607.64" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Freelancer&#45;&gt;Contract -->
<g id="edge6" class="edge">
<title>Freelancer&#45;&gt;Contract</title>
<path fill="none" stroke="#4a4a4a" d="M1118.25,-614.82C1118.25,-614.82 1118.25,-226.09 1118.25,-226.09"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1121.75,-226.09 1118.25,-216.09 1114.75,-226.09 1121.75,-226.09"/>
<text text-anchor="middle" x="1116.25" y="-218.89" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="1115.25" y="-607.62" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Freelancer&#45;&gt;TimeEntry -->
<g id="edge8" class="edge">
<title>Freelancer&#45;&gt;TimeEntry</title>
<path fill="none" stroke="#4a4a4a" d="M994.33,-614.94C994.33,-585.23 994.33,-561 994.33,-561 994.33,-561 611.5,-561 611.5,-561 611.5,-561 611.5,-528.13 611.5,-528.13"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="615,-528.13 611.5,-518.13 608,-528.13 615,-528.13"/>
<text text-anchor="middle" x="609.5" y="-520.93" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="991.33" y="-607.74" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Freelancer&#45;&gt;Invoice -->
<g id="edge10" class="edge">
<title>Freelancer&#45;&gt;Invoice</title>
<path fill="none" stroke="#4a4a4a" d="M1259.82,-723C1465.69,-723 1823,-723 1823,-723 1823,-723 1823,-528.16 1823,-528.16"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1826.5,-528.16 1823,-518.16 1819.5,-528.16 1826.5,-528.16"/>
<text text-anchor="middle" x="1821" y="-520.96" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="1262.82" y="-725.8" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Freelancer&#45;&gt;Review -->
<g id="edge14" class="edge">
<title>Freelancer&#45;&gt;Review</title>
<path fill="none" stroke="#4a4a4a" d="M1233,-614.84C1233,-614.84 1233,-528.16 1233,-528.16"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1236.5,-528.16 1233,-518.16 1229.5,-528.16 1236.5,-528.16"/>
<text text-anchor="middle" x="1231" y="-520.96" font-family="Arial" font-size="9.00">*</text>
<text text-anchor="middle" x="1230" y="-607.64" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Proposal&#45;&gt;Contract -->
<g id="edge4" class="edge">
<title>Proposal&#45;&gt;Contract</title>
<path fill="none" stroke="#4a4a4a" stroke-dasharray="5,2" d="M998.25,-301.82C998.25,-301.82 998.25,-226.18 998.25,-226.18"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1001.75,-226.18 998.25,-216.18 994.75,-226.18 1001.75,-226.18"/>
<text text-anchor="middle" x="995.25" y="-218.98" font-family="Arial" font-size="9.00">1</text>
<text text-anchor="middle" x="995.25" y="-294.62" font-family="Arial" font-size="9.00">1</text>
</g>
<!-- Payment -->
<g id="node9" class="node">
<title>Payment</title>
<path fill="#e8e8e8" stroke="transparent" d="M1694.5,-4C1694.5,-4 1951.5,-4 1951.5,-4 1957.5,-4 1963.5,-10 1963.5,-16 1963.5,-16 1963.5,-200 1963.5,-200 1963.5,-206 1957.5,-212 1951.5,-212 1951.5,-212 1694.5,-212 1694.5,-212 1688.5,-212 1682.5,-206 1682.5,-200 1682.5,-200 1682.5,-16 1682.5,-16 1682.5,-10 1688.5,-4 1694.5,-4"/>
<polygon fill="#bebebe" stroke="transparent" points="1684,-189 1684,-211 1963,-211 1963,-189 1684,-189"/>
<text text-anchor="start" x="1800.5" y="-198.2" font-family="Arial" font-weight="bold" font-size="11.00">Payment</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1684,-179 1684,-189 1963,-189 1963,-179 1684,-179"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1684,-157 1684,-179 1963,-179 1963,-157 1684,-157"/>
<text text-anchor="start" x="1689" y="-165.2" font-family="Arial" font-size="11.00">&#45; paymentId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1684,-135 1684,-157 1963,-157 1963,-135 1684,-135"/>
<text text-anchor="start" x="1689" y="-143.2" font-family="Arial" font-size="11.00">+ invoiceId : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1684,-113 1684,-135 1963,-135 1963,-113 1684,-113"/>
<text text-anchor="start" x="1689" y="-121.2" font-family="Arial" font-size="11.00">+ amount : double</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1684,-91 1684,-113 1963,-113 1963,-91 1684,-91"/>
<text text-anchor="start" x="1689" y="-99.2" font-family="Arial" font-size="11.00">+ paymentDate : Date</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1684,-69 1684,-91 1963,-91 1963,-69 1684,-69"/>
<text text-anchor="start" x="1689" y="-77.2" font-family="Arial" font-size="11.00">+ status : String</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1684,-59 1684,-69 1963,-69 1963,-59 1684,-59"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1684,-49 1684,-59 1963,-59 1963,-49 1684,-49"/>
<polygon fill="#e8e8e8" stroke="transparent" points="1684,-27 1684,-49 1963,-49 1963,-27 1684,-27"/>
<text text-anchor="start" x="1689" y="-35.2" font-family="Arial" font-size="11.00">+ Payment(invoiceId: String, amount: double) : Payment</text>
<polygon fill="#e8e8e8" stroke="transparent" points="1684,-5 1684,-27 1963,-27 1963,-5 1684,-5"/>
<text text-anchor="start" x="1689" y="-13.2" font-family="Arial" font-size="11.00">+ process() : boolean</text>
<polygon fill="black" stroke="black" points="1683,-189 1683,-189 1964,-189 1964,-189 1683,-189"/>
<polygon fill="black" stroke="black" points="1683,-59 1683,-59 1964,-59 1964,-59 1683,-59"/>
<path fill="none" stroke="black" d="M1694.5,-4C1694.5,-4 1951.5,-4 1951.5,-4 1957.5,-4 1963.5,-10 1963.5,-16 1963.5,-16 1963.5,-200 1963.5,-200 1963.5,-206 1957.5,-212 1951.5,-212 1951.5,-212 1694.5,-212 1694.5,-212 1688.5,-212 1682.5,-206 1682.5,-200 1682.5,-200 1682.5,-16 1682.5,-16 1682.5,-10 1688.5,-4 1694.5,-4"/>
</g>
<!-- Invoice&#45;&gt;Payment -->
<g id="edge12" class="edge">
<title>Invoice&#45;&gt;Payment</title>
<path fill="none" stroke="#4a4a4a" d="M1823,-301.82C1823,-301.82 1823,-226.18 1823,-226.18"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1826.5,-226.18 1823,-216.18 1819.5,-226.18 1826.5,-226.18"/>
<text text-anchor="middle" x="1820" y="-218.98" font-family="Arial" font-size="9.00">1</text>
<text text-anchor="middle" x="1820" y="-294.62" font-family="Arial" font-size="9.00">1</text>
</g>
</g>
</svg>