From 7dc9ddfa0d83101c3b2c909981832f051f374be9 Mon Sep 17 00:00:00 2001 From: MonaS8 <schumo62@gmail.com> Date: Mon, 24 Mar 2025 11:01:59 +0100 Subject: [PATCH] Update class diagram --- UML/classdiagram.uxf | 103 +++++++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 47 deletions(-) diff --git a/UML/classdiagram.uxf b/UML/classdiagram.uxf index cdbb6fb..3168a8f 100644 --- a/UML/classdiagram.uxf +++ b/UML/classdiagram.uxf @@ -1,4 +1,4 @@ -<diagram program="umletino" version="15.1"><zoom_level>5</zoom_level><help_text>Space for diagram notes</help_text><element><id>UMLClass</id><coordinates><x>400</x><y>260</y><w>325</w><h>145</h></coordinates><panel_attributes>ActivitiesService +<diagram program="umletino" version="15.1"><zoom_level>4</zoom_level><help_text>Space for diagram notes</help_text><element><id>UMLClass</id><coordinates><x>40</x><y>243</y><w>260</w><h>116</h></coordinates><panel_attributes>ActivitiesService -- -- + addNoteCreateActivity(userId: string, roomSession: RoomSession, note: Note): void @@ -16,15 +16,15 @@ + calculateVideoPoints(activities: Activity[]): int + calculateBrowserPoints(activities: Activity[]): int + calculateWhiteboardPoints(activities: Activity[]): int -+ calculateNotePoints(activities: Activity[]): int</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>925</x><y>505</y><w>225</w><h>40</h></coordinates><panel_attributes>RoleAssignmentService ++ calculateNotePoints(activities: Activity[]): int</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>460</x><y>439</y><w>180</w><h>32</h></coordinates><panel_attributes>RoleAssignmentService -- -- + determineRole(sessionId:number, userId: string): void -+ assignRole(sessionId:number):Promise<RoleAssignmentDto[]></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1025</x><y>555</y><w>225</w><h>40</h></coordinates><panel_attributes>ModeAssignmentService ++ assignRole(sessionId:number):Promise<RoleAssignmentDto[]></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>540</x><y>479</y><w>180</w><h>32</h></coordinates><panel_attributes>ModeAssignmentService -- -- + determineMode(sessionId:number): void -+ assignMode(sessionId:number): Promise<ModeAssignment[]></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>990</x><y>710</y><w>90</w><h>85</h></coordinates><panel_attributes>Activity ++ assignMode(sessionId:number): Promise<ModeAssignment[]></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>156</x><y>623</y><w>72</w><h>68</h></coordinates><panel_attributes>Activity -- + id: number + user: string @@ -35,7 +35,7 @@ + noteId: number + timestamp: Date -- -</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>760</x><y>775</y><w>115</w><h>70</h></coordinates><panel_attributes>RoomSession +</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>208</x><y>739</y><w>92</w><h>56</h></coordinates><panel_attributes>RoomSession -- + id: number + room: Room @@ -44,14 +44,14 @@ + users: Collection <RoomSessionUser> + activities: Collection <Activity> -- -</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>760</x><y>885</y><w>95</w><h>55</h></coordinates><panel_attributes>RoomSessionUser +</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>276</x><y>631</y><w>76</w><h>44</h></coordinates><panel_attributes>RoomSessionUser -- + id: number + roomSession: RoomSession + userId: string + name: string -- -</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>390</x><y>240</y><w>890</w><h>385</h></coordinates><panel_attributes>Services</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>525</x><y>690</y><w>610</w><h>380</h></coordinates><panel_attributes>Entities</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>760</x><y>970</y><w>115</w><h>75</h></coordinates><panel_attributes>SessionPoints +</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>32</x><y>227</y><w>712</w><h>308</h></coordinates><panel_attributes>Services</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>136</x><y>587</y><w>488</w><h>344</h></coordinates><panel_attributes>Entities</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>408</x><y>635</y><w>92</w><h>60</h></coordinates><panel_attributes>SessionPoints -- + id: number + roomSessionUser: RoomSessionUser @@ -61,16 +61,16 @@ + whiteboardPoints: number + notePoints: number -- -</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>870</x><y>770</y><w>130</w><h>25</h></coordinates><panel_attributes>lt=- +</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>212</x><y>687</y><w>40</w><h>60</h></coordinates><panel_attributes>lt=- m1=1 m2=0...n -contains ></panel_attributes><additional_attributes>10;20;240;20</additional_attributes></element><element><id>Relation</id><coordinates><x>805</x><y>840</y><w>30</w><h>55</h></coordinates><panel_attributes>lt=- +references ^</panel_attributes><additional_attributes>10;130;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>284</x><y>671</y><w>36</w><h>76</h></coordinates><panel_attributes>lt=- m1=1 m2=0...n -has v</panel_attributes><additional_attributes>10;10;10;90</additional_attributes></element><element><id>Relation</id><coordinates><x>805</x><y>935</y><w>30</w><h>45</h></coordinates><panel_attributes>lt=- +contains ^</panel_attributes><additional_attributes>10;170;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>348</x><y>643</y><w>68</w><h>20</h></coordinates><panel_attributes>lt=- m1=1 m2=1 -has v</panel_attributes><additional_attributes>10;10;10;70</additional_attributes></element><element><id>UMLClass</id><coordinates><x>560</x><y>770</y><w>115</w><h>95</h></coordinates><panel_attributes>Room +has ></panel_attributes><additional_attributes>10;20;150;20</additional_attributes></element><element><id>UMLClass</id><coordinates><x>204</x><y>839</y><w>92</w><h>76</h></coordinates><panel_attributes>Room -- + id: number + name: string @@ -82,51 +82,44 @@ has v</panel_attributes><additional_attributes>10;10;10;70</additional_attribute + notes = new Collection<Note>(this) + whiteboardCanvas -- -</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>670</x><y>805</y><w>100</w><h>25</h></coordinates><panel_attributes>lt=- +</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>248</x><y>791</y><w>24</w><h>56</h></coordinates><panel_attributes>lt=<<<<- m1=1 m2=0...n -has ></panel_attributes><additional_attributes>10;20;180;20</additional_attributes></element><element><id>UMLClass</id><coordinates><x>990</x><y>885</y><w>120</w><h>55</h></coordinates><panel_attributes>Roles +has ^</panel_attributes><additional_attributes>10;120;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>512</x><y>743</y><w>96</w><h>44</h></coordinates><panel_attributes>Roles -- + id: number + roleName: string + userId: string + roomSession: RoomSession -- -</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>990</x><y>810</y><w>120</w><h>50</h></coordinates><panel_attributes>Modes +</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>520</x><y>835</y><w>96</w><h>40</h></coordinates><panel_attributes>Modes -- + id: number + mode: string + roomSession: RoomSession -- -</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>0</x><y>0</y><w>205</w><h>25</h></coordinates><panel_attributes>was ist mit controller, DTO? -Controller/gateway maybe dann noch hinzufügen - -bg=red -</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>10</x><y>65</y><w>205</w><h>15</h></coordinates><panel_attributes>Pfeilarten schauen - -bg=red -</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>850</x><y>905</y><w>150</w><h>25</h></coordinates><panel_attributes>lt=- +</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>332</x><y>671</y><w>188</w><h>96</h></coordinates><panel_attributes>lt=- m1=1 m2=1 -has ></panel_attributes><additional_attributes>10;20;280;20</additional_attributes></element><element><id>Relation</id><coordinates><x>870</x><y>820</y><w>130</w><h>25</h></coordinates><panel_attributes>lt=- +< assigned </panel_attributes><additional_attributes>10;10;10;210;450;210</additional_attributes></element><element><id>Relation</id><coordinates><x>296</x><y>763</y><w>232</w><h>104</h></coordinates><panel_attributes>lt=- m1=1 m2=1 -has ></panel_attributes><additional_attributes>10;20;240;20</additional_attributes></element><element><id>UMLPackage</id><coordinates><x>810</x><y>10</y><w>725</w><h>225</h></coordinates><panel_attributes>Controller</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>970</x><y>75</y><w>335</w><h>30</h></coordinates><panel_attributes>RoomSessionUserPointsController +< assigned </panel_attributes><additional_attributes>10;10;160;10;370;230;560;230</additional_attributes></element><element><id>UMLPackage</id><coordinates><x>368</x><y>43</y><w>580</w><h>180</h></coordinates><panel_attributes>Controller</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>496</x><y>95</y><w>268</w><h>24</h></coordinates><panel_attributes>RoomSessionUserPointsController -- -- -+ getPointsByRoomSessionUser(@Param('userId') userId: number): Promise<RoomSessionUserPointsResponseDto></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>830</x><y>35</y><w>335</w><h>35</h></coordinates><panel_attributes>RoomSessionPointsController ++ getPointsByRoomSessionUser(@Param('userId') userId: number): Promise<RoomSessionUserPointsResponseDto></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>384</x><y>63</y><w>268</w><h>28</h></coordinates><panel_attributes>RoomSessionPointsController -- -- -+ getPointsBySession(@Param('sessionId') sessionId: number): Promise<RoomSessionPointsRequestDto></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1080</x><y>120</y><w>335</w><h>40</h></coordinates><panel_attributes>RoleAssignmentController ++ getPointsBySession(@Param('sessionId') sessionId: number): Promise<RoomSessionPointsRequestDto></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>584</x><y>131</y><w>268</w><h>32</h></coordinates><panel_attributes>RoleAssignmentController -- -- + getRolesBySession(sessionId:number):Promise<RolesAssignmentDto[]> + getUserRoleForSession(userId: string, sessionId) -</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1180</x><y>175</y><w>335</w><h>35</h></coordinates><panel_attributes>ModeAssignmentController +</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>664</x><y>175</y><w>268</w><h>28</h></coordinates><panel_attributes>ModeAssignmentController -- -- + getModeForSession(sessionId:number): Promise<ModeAssignment[]> -</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1355</x><y>450</y><w>130</w><h>50</h></coordinates><panel_attributes>RoomSessionUserPointsResponseDto +</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>804</x><y>395</y><w>104</w><h>40</h></coordinates><panel_attributes>RoomSessionUserPointsResponseDto -- + allPoints: AllPoints + totalPoints: number @@ -134,14 +127,14 @@ has ></panel_attributes><additional_attributes>10;20;240;20</additional_attri + userId: number -- -group=group-4</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1355</x><y>395</y><w>115</w><h>45</h></coordinates><panel_attributes>RoomSessionPointsRequestDto +group=group-4</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>804</x><y>351</y><w>92</w><h>36</h></coordinates><panel_attributes>RoomSessionPointsRequestDto -- + allPoints: AllPoints + totalPoints: number; + sessionId: number; -- -group=group-4</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1355</x><y>510</y><w>115</w><h>55</h></coordinates><panel_attributes>RoleAssignmentDto +group=group-4</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>804</x><y>443</y><w>92</w><h>44</h></coordinates><panel_attributes>RoleAssignmentDto -- + userId: string + userName: string @@ -149,39 +142,55 @@ group=group-4</panel_attributes><additional_attributes></additional_attributes>< + pointsTotal: number -- -group=group-4</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1355</x><y>575</y><w>115</w><h>35</h></coordinates><panel_attributes>ModeAssignmentDto +group=group-4</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>804</x><y>495</y><w>92</w><h>28</h></coordinates><panel_attributes>ModeAssignmentDto -- + sessionId: number + mode: string -- -group=group-4</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>1335</x><y>370</y><w>165</w><h>255</h></coordinates><panel_attributes>DTOs -group=group-4</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1335</x><y>270</y><w>85</w><h>65</h></coordinates><panel_attributes><<dateType>> +group=group-4</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>788</x><y>331</y><w>132</w><h>204</h></coordinates><panel_attributes>DTOs +group=group-4</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>788</x><y>251</y><w>68</w><h>52</h></coordinates><panel_attributes><<dateType>> AllPoints -- audioPoints: number videoPoints: number browserPoints: number whiteboardPoints: number -notePoints: number</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>595</x><y>415</y><w>255</w><h>40</h></coordinates><panel_attributes>RoomSessionService +notePoints: number</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>196</x><y>367</y><w>204</w><h>32</h></coordinates><panel_attributes>RoomSessionService -- -- + beginSession(room: Room): Promise<RoomSession> + closeSession(roomSession: RoomSession): Promise<void> -+ getAllPointsBySession(sessionId: number): Promise<RoomSessionPointsRequestDto></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>745</x><y>460</y><w>310</w><h>40</h></coordinates><panel_attributes>RoomSessionUserService ++ getAllPointsBySession(sessionId: number): Promise<RoomSessionPointsRequestDto></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>316</x><y>403</y><w>248</w><h>32</h></coordinates><panel_attributes>RoomSessionUserService -- -- + addSessionUser(roomSession: RoomSession, userId: string, name: string): Promise<RoomSessionUser> + updateSessionUserName(roomSession: RoomSession, userId: string, name:string) -+ getPointsByRoomSessionUser(userId: number): Promise<RoomSessionUserPointsResponseDto></panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>845</x><y>430</y><w>520</w><h>15</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>1020;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1050</x><y>475</y><w>315</w><h>15</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>610;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1145</x><y>530</y><w>220</w><h>15</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>420;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1245</x><y>580</y><w>120</w><h>15</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>220;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>830</x><y>65</y><w>15</w><h>360</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;700;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1120</x><y>155</y><w>20</w><h>360</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>20;700;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>705</x><y>450</y><w>120</w><h>335</h></coordinates><panel_attributes>lt=<. -manages v</panel_attributes><additional_attributes>220;650;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1010</x><y>100</y><w>20</w><h>370</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>20;720;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1230</x><y>205</y><w>20</w><h>360</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>20;700;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>845</x><y>495</y><w>65</w><h>400</h></coordinates><panel_attributes>lt=<. -manages</panel_attributes><additional_attributes>10;780;110;10</additional_attributes></element><element><id>Relation</id><coordinates><x>995</x><y>540</y><w>60</w><h>355</h></coordinates><panel_attributes>lt=<. -manages</panel_attributes><additional_attributes>90;690;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1095</x><y>590</y><w>80</w><h>230</h></coordinates><panel_attributes>lt=<. -manages</panel_attributes><additional_attributes>10;440;140;10</additional_attributes></element><element><id>Relation</id><coordinates><x>540</x><y>400</y><w>460</w><h>325</h></coordinates><panel_attributes>lt=<. -manages v</panel_attributes><additional_attributes>900;630;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>455</x><y>400</y><w>315</w><h>600</h></coordinates><panel_attributes>lt=<. -manages v</panel_attributes><additional_attributes>610;1180;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>865</x><y>495</y><w>65</w><h>485</h></coordinates><panel_attributes>lt=<. -uses</panel_attributes><additional_attributes>10;950;110;10</additional_attributes></element><element><id>Relation</id><coordinates><x>725</x><y>450</y><w>35</w><h>40</h></coordinates><panel_attributes>lt=<. -uses</panel_attributes><additional_attributes>10;10;40;60</additional_attributes></element><element><id>Relation</id><coordinates><x>870</x><y>540</y><w>105</w><h>455</h></coordinates><panel_attributes>lt=<. -uses</panel_attributes><additional_attributes>10;890;190;10</additional_attributes></element><element><id>Relation</id><coordinates><x>870</x><y>590</y><w>235</w><h>425</h></coordinates><panel_attributes>lt=<. -uses</panel_attributes><additional_attributes>10;830;450;10</additional_attributes></element><element><id>Relation</id><coordinates><x>515</x><y>400</y><w>255</w><h>495</h></coordinates><panel_attributes>lt=<. -uses</panel_attributes><additional_attributes>490;970;10;10</additional_attributes></element></diagram> \ No newline at end of file ++ getPointsByRoomSessionUser(userId: number): Promise<RoomSessionUserPointsResponseDto></panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>396</x><y>375</y><w>416</w><h>20</h></coordinates><panel_attributes>lt=<. + +returns</panel_attributes><additional_attributes>1020;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>560</x><y>411</y><w>252</w><h>20</h></coordinates><panel_attributes>lt=<. + +returns</panel_attributes><additional_attributes>610;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>636</x><y>455</y><w>176</w><h>20</h></coordinates><panel_attributes>lt=<. + +returns</panel_attributes><additional_attributes>420;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>716</x><y>495</y><w>96</w><h>20</h></coordinates><panel_attributes>lt=<. + +returns</panel_attributes><additional_attributes>220;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>384</x><y>87</y><w>20</w><h>288</h></coordinates><panel_attributes>lt=<. + +uses</panel_attributes><additional_attributes>10;700;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>616</x><y>159</y><w>24</w><h>288</h></coordinates><panel_attributes>lt=<. + +uses</panel_attributes><additional_attributes>20;700;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>248</x><y>391</y><w>40</w><h>356</h></coordinates><panel_attributes>lt=<. +manages v</panel_attributes><additional_attributes>10;870;20;10</additional_attributes></element><element><id>Relation</id><coordinates><x>528</x><y>115</y><w>24</w><h>296</h></coordinates><panel_attributes>lt=<. + +uses</panel_attributes><additional_attributes>20;720;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>704</x><y>199</y><w>24</w><h>288</h></coordinates><panel_attributes>lt=<. + +uses</panel_attributes><additional_attributes>20;700;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>336</x><y>431</y><w>36</w><h>208</h></coordinates><panel_attributes>lt=<. +manages</panel_attributes><additional_attributes>10;500;20;10</additional_attributes></element><element><id>Relation</id><coordinates><x>520</x><y>467</y><w>32</w><h>284</h></coordinates><panel_attributes>lt=<. +manages</panel_attributes><additional_attributes>10;690;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>612</x><y>507</y><w>68</w><h>356</h></coordinates><panel_attributes>lt=<. +manages</panel_attributes><additional_attributes>10;870;100;870;100;10</additional_attributes></element><element><id>Relation</id><coordinates><x>168</x><y>355</y><w>40</w><h>276</h></coordinates><panel_attributes>lt=<. +manages v</panel_attributes><additional_attributes>10;670;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>120</x><y>355</y><w>344</w><h>596</h></coordinates><panel_attributes>lt=<. +manages ></panel_attributes><additional_attributes>840;850;840;1470;10;1470;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>448</x><y>431</y><w>28</w><h>212</h></coordinates><panel_attributes>lt=<. +queries</panel_attributes><additional_attributes>10;510;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>300</x><y>395</y><w>28</w><h>32</h></coordinates><panel_attributes>lt=<. +uses</panel_attributes><additional_attributes>10;10;40;60</additional_attributes></element><element><id>Relation</id><coordinates><x>480</x><y>467</y><w>20</w><h>176</h></coordinates><panel_attributes>lt=<. +uses</panel_attributes><additional_attributes>10;420;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>496</x><y>507</y><w>112</w><h>168</h></coordinates><panel_attributes>lt=<. +uses</panel_attributes><additional_attributes>10;400;240;400;240;10</additional_attributes></element><element><id>Relation</id><coordinates><x>132</x><y>355</y><w>184</w><h>284</h></coordinates><panel_attributes>lt=<. +uses</panel_attributes><additional_attributes>440;690;440;280;10;280;10;10</additional_attributes></element></diagram> \ No newline at end of file -- GitLab