@taimos/radball-digital-api 0.0.23 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,317 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://radball.digital/schemas/league-group-export.json",
4
+ "title": "League Group Export",
5
+ "description": "Schema for exporting league group data including teams, clubs, gyms, and statistics",
6
+ "type": "object",
7
+ "required": ["group", "teams", "clubs", "gyms", "statistics"],
8
+ "properties": {
9
+ "group": {
10
+ "$ref": "#/definitions/Group"
11
+ },
12
+ "teams": {
13
+ "type": "array",
14
+ "items": {
15
+ "$ref": "#/definitions/TeamDetail"
16
+ }
17
+ },
18
+ "clubs": {
19
+ "type": "array",
20
+ "items": {
21
+ "$ref": "#/definitions/Club"
22
+ }
23
+ },
24
+ "gyms": {
25
+ "type": "array",
26
+ "items": {
27
+ "$ref": "#/definitions/Gym"
28
+ }
29
+ },
30
+ "statistics": {
31
+ "$ref": "#/definitions/LeagueGroupStatistics"
32
+ }
33
+ },
34
+ "definitions": {
35
+ "Address": {
36
+ "type": "object",
37
+ "required": ["street", "zip", "city", "country"],
38
+ "properties": {
39
+ "street": {
40
+ "type": "string"
41
+ },
42
+ "zip": {
43
+ "type": "string"
44
+ },
45
+ "city": {
46
+ "type": "string"
47
+ },
48
+ "country": {
49
+ "type": "string"
50
+ }
51
+ }
52
+ },
53
+ "Club": {
54
+ "type": "object",
55
+ "required": ["id", "name", "shortName", "preferredDates"],
56
+ "properties": {
57
+ "id": {
58
+ "type": "string",
59
+ "format": "uuid"
60
+ },
61
+ "name": {
62
+ "type": "string"
63
+ },
64
+ "shortName": {
65
+ "type": "string"
66
+ },
67
+ "preferredDates": {
68
+ "type": "array",
69
+ "items": {
70
+ "$ref": "#/definitions/PreferredMatchdayDate"
71
+ }
72
+ }
73
+ }
74
+ },
75
+ "Season": {
76
+ "type": "object",
77
+ "required": ["id", "name", "startDate", "endDate"],
78
+ "properties": {
79
+ "id": {
80
+ "type": "string",
81
+ "format": "uuid"
82
+ },
83
+ "name": {
84
+ "type": "string"
85
+ },
86
+ "startDate": {
87
+ "type": "string",
88
+ "format": "date"
89
+ },
90
+ "endDate": {
91
+ "type": "string",
92
+ "format": "date"
93
+ }
94
+ }
95
+ },
96
+ "League": {
97
+ "type": "object",
98
+ "required": ["id", "name", "shortName", "description", "minAge", "maxAge", "matchdayDates"],
99
+ "properties": {
100
+ "id": {
101
+ "type": "string",
102
+ "format": "uuid"
103
+ },
104
+ "name": {
105
+ "type": "string"
106
+ },
107
+ "shortName": {
108
+ "type": "string"
109
+ },
110
+ "description": {
111
+ "type": "string"
112
+ },
113
+ "minAge": {
114
+ "type": ["number", "null"]
115
+ },
116
+ "maxAge": {
117
+ "type": ["number", "null"]
118
+ },
119
+ "matchdayDates": {
120
+ "type": "array",
121
+ "items": {
122
+ "type": "string",
123
+ "format": "date"
124
+ }
125
+ }
126
+ }
127
+ },
128
+ "Leader": {
129
+ "type": "object",
130
+ "required": ["id", "firstName", "lastName", "email", "phone"],
131
+ "properties": {
132
+ "id": {
133
+ "type": "string",
134
+ "format": "uuid"
135
+ },
136
+ "firstName": {
137
+ "type": "string"
138
+ },
139
+ "lastName": {
140
+ "type": "string"
141
+ },
142
+ "email": {
143
+ "type": "string",
144
+ "format": "email"
145
+ },
146
+ "phone": {
147
+ "type": ["string", "null"]
148
+ }
149
+ }
150
+ },
151
+ "Group": {
152
+ "type": "object",
153
+ "required": ["id", "number", "name", "shortName", "season", "league", "leader", "regulation"],
154
+ "properties": {
155
+ "id": {
156
+ "type": "string",
157
+ "format": "uuid"
158
+ },
159
+ "number": {
160
+ "type": "number"
161
+ },
162
+ "name": {
163
+ "type": "string"
164
+ },
165
+ "shortName": {
166
+ "type": "string"
167
+ },
168
+ "season": {
169
+ "$ref": "#/definitions/Season"
170
+ },
171
+ "league": {
172
+ "$ref": "#/definitions/League"
173
+ },
174
+ "leader": {
175
+ "$ref": "#/definitions/Leader"
176
+ },
177
+ "regulation": {
178
+ "type": "string"
179
+ }
180
+ }
181
+ },
182
+ "Person": {
183
+ "type": "object",
184
+ "required": ["id", "firstName", "lastName", "dateOfBirth", "uciCode", "nationality", "clubId"],
185
+ "properties": {
186
+ "id": {
187
+ "type": "string",
188
+ "format": "uuid"
189
+ },
190
+ "firstName": {
191
+ "type": "string"
192
+ },
193
+ "lastName": {
194
+ "type": "string"
195
+ },
196
+ "email": {
197
+ "type": ["string", "null"],
198
+ "format": "email"
199
+ },
200
+ "phone": {
201
+ "type": ["string", "null"]
202
+ },
203
+ "gender": {
204
+ "type": "string"
205
+ },
206
+ "dateOfBirth": {
207
+ "type": "string",
208
+ "format": "date"
209
+ },
210
+ "uciCode": {
211
+ "type": "string"
212
+ },
213
+ "nationality": {
214
+ "type": "string"
215
+ },
216
+ "clubId": {
217
+ "type": "string",
218
+ "format": "uuid"
219
+ }
220
+ }
221
+ },
222
+ "PreferredMatchdayDate": {
223
+ "type": "object",
224
+ "required": ["preferenceDate", "status", "notes"],
225
+ "properties": {
226
+ "preferenceDate": {
227
+ "type": "string",
228
+ "format": "date"
229
+ },
230
+ "status": {
231
+ "type": "string",
232
+ "enum": ["PREFERRED", "AVAILABLE"]
233
+ },
234
+ "notes": {
235
+ "type": ["string", "null"]
236
+ }
237
+ }
238
+ },
239
+ "TeamDetail": {
240
+ "type": "object",
241
+ "required": ["id", "name", "withoutCompetition", "secondRightToPlay", "exemptionRequest", "players", "clubId", "sgClubId"],
242
+ "properties": {
243
+ "id": {
244
+ "type": "string",
245
+ "format": "uuid"
246
+ },
247
+ "name": {
248
+ "type": "string"
249
+ },
250
+ "withoutCompetition": {
251
+ "type": "boolean"
252
+ },
253
+ "secondRightToPlay": {
254
+ "type": "boolean"
255
+ },
256
+ "exemptionRequest": {
257
+ "type": ["string", "null"]
258
+ },
259
+ "players": {
260
+ "type": "array",
261
+ "items": {
262
+ "$ref": "#/definitions/Person"
263
+ }
264
+ },
265
+ "clubId": {
266
+ "type": "string",
267
+ "format": "uuid"
268
+ },
269
+ "sgClubId": {
270
+ "type": ["string", "null"],
271
+ "format": "uuid"
272
+ }
273
+ }
274
+ },
275
+ "Gym": {
276
+ "type": "object",
277
+ "required": ["id", "name", "availableFields", "address", "clubId"],
278
+ "properties": {
279
+ "id": {
280
+ "type": "string",
281
+ "format": "uuid"
282
+ },
283
+ "name": {
284
+ "type": "string"
285
+ },
286
+ "availableFields": {
287
+ "type": "string"
288
+ },
289
+ "address": {
290
+ "$ref": "#/definitions/Address"
291
+ },
292
+ "clubId": {
293
+ "type": "string",
294
+ "format": "uuid"
295
+ }
296
+ }
297
+ },
298
+ "LeagueGroupStatistics": {
299
+ "type": "object",
300
+ "required": ["totalTeams", "totalPlayers", "totalClubs", "totalGyms"],
301
+ "properties": {
302
+ "totalTeams": {
303
+ "type": "number"
304
+ },
305
+ "totalPlayers": {
306
+ "type": "number"
307
+ },
308
+ "totalClubs": {
309
+ "type": "number"
310
+ },
311
+ "totalGyms": {
312
+ "type": "number"
313
+ }
314
+ }
315
+ }
316
+ }
317
+ }
@@ -0,0 +1,92 @@
1
+ export interface Address {
2
+ street: string;
3
+ zip: string;
4
+ city: string;
5
+ country: string;
6
+ }
7
+ export interface Club {
8
+ id: string;
9
+ name: string;
10
+ shortName: string;
11
+ preferredDates: PreferredMatchdayDate[];
12
+ }
13
+ export interface Season {
14
+ id: string;
15
+ name: string;
16
+ startDate: string;
17
+ endDate: string;
18
+ }
19
+ export interface League {
20
+ id: string;
21
+ name: string;
22
+ shortName: string;
23
+ description: string;
24
+ minAge: number | null;
25
+ maxAge: number | null;
26
+ matchdayDates: string[];
27
+ }
28
+ export interface Leader {
29
+ id: string;
30
+ firstName: string;
31
+ lastName: string;
32
+ email: string;
33
+ phone: string | null;
34
+ }
35
+ export interface Group {
36
+ id: string;
37
+ number: number;
38
+ name: string;
39
+ shortName: string;
40
+ season: Season;
41
+ league: League;
42
+ leader: Leader;
43
+ regulation: string;
44
+ }
45
+ export interface Person {
46
+ id: string;
47
+ firstName: string;
48
+ lastName: string;
49
+ email: string | null;
50
+ phone: string | null;
51
+ gender: string;
52
+ dateOfBirth: string;
53
+ uciCode: string;
54
+ nationality: string;
55
+ clubId: string;
56
+ }
57
+ export type PreferredDateStatus = 'PREFERRED' | 'AVAILABLE';
58
+ export interface PreferredMatchdayDate {
59
+ preferenceDate: string;
60
+ status: PreferredDateStatus;
61
+ notes: string | null;
62
+ }
63
+ export interface TeamDetail {
64
+ id: string;
65
+ name: string;
66
+ withoutCompetition: boolean;
67
+ secondRightToPlay: boolean;
68
+ exemptionRequest: string | null;
69
+ players: Person[];
70
+ clubId: string;
71
+ sgClubId: string | null;
72
+ }
73
+ export interface Gym {
74
+ id: string;
75
+ name: string;
76
+ availableFields: string;
77
+ address: Address;
78
+ clubId: string;
79
+ }
80
+ export interface LeagueGroupStatistics {
81
+ totalTeams: number;
82
+ totalPlayers: number;
83
+ totalClubs: number;
84
+ totalGyms: number;
85
+ }
86
+ export interface LeagueGroupExport {
87
+ group: Group;
88
+ teams: TeamDetail[];
89
+ clubs: Club[];
90
+ gyms: Gym[];
91
+ statistics: LeagueGroupStatistics;
92
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZ3VlLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cG9ydC9sZWFndWUtZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzcyB7XG4gIHN0cmVldDogc3RyaW5nO1xuICB6aXA6IHN0cmluZztcbiAgY2l0eTogc3RyaW5nO1xuICBjb3VudHJ5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1YiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc2hvcnROYW1lOiBzdHJpbmc7XG4gIHByZWZlcnJlZERhdGVzOiBQcmVmZXJyZWRNYXRjaGRheURhdGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFzb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHN0YXJ0RGF0ZTogc3RyaW5nO1xuICBlbmREYXRlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGVhZ3VlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzaG9ydE5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbWluQWdlOiBudW1iZXIgfCBudWxsO1xuICBtYXhBZ2U6IG51bWJlciB8IG51bGw7XG4gIG1hdGNoZGF5RGF0ZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlYWRlciB7XG4gIGlkOiBzdHJpbmc7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cCB7XG4gIGlkOiBzdHJpbmc7XG4gIG51bWJlcjogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICBzZWFzb246IFNlYXNvbjtcbiAgbGVhZ3VlOiBMZWFndWU7XG4gIGxlYWRlcjogTGVhZGVyO1xuICByZWd1bGF0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uIHtcbiAgaWQ6IHN0cmluZztcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gIGxhc3ROYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmcgfCBudWxsO1xuICBwaG9uZTogc3RyaW5nIHwgbnVsbDtcbiAgZ2VuZGVyOiBzdHJpbmc7XG4gIGRhdGVPZkJpcnRoOiBzdHJpbmc7XG4gIHVjaUNvZGU6IHN0cmluZztcbiAgbmF0aW9uYWxpdHk6IHN0cmluZztcbiAgY2x1YklkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFByZWZlcnJlZERhdGVTdGF0dXMgPSAnUFJFRkVSUkVEJyB8ICdBVkFJTEFCTEUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByZWZlcnJlZE1hdGNoZGF5RGF0ZSB7XG4gIHByZWZlcmVuY2VEYXRlOiBzdHJpbmc7XG4gIHN0YXR1czogUHJlZmVycmVkRGF0ZVN0YXR1cztcbiAgbm90ZXM6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVhbURldGFpbCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgd2l0aG91dENvbXBldGl0aW9uOiBib29sZWFuO1xuICBzZWNvbmRSaWdodFRvUGxheTogYm9vbGVhbjtcbiAgZXhlbXB0aW9uUmVxdWVzdDogc3RyaW5nIHwgbnVsbDtcbiAgcGxheWVyczogUGVyc29uW107XG4gIGNsdWJJZDogc3RyaW5nO1xuICBzZ0NsdWJJZDogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHeW0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGF2YWlsYWJsZUZpZWxkczogc3RyaW5nO1xuICBhZGRyZXNzOiBBZGRyZXNzO1xuICBjbHViSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZWFndWVHcm91cFN0YXRpc3RpY3Mge1xuICB0b3RhbFRlYW1zOiBudW1iZXI7XG4gIHRvdGFsUGxheWVyczogbnVtYmVyO1xuICB0b3RhbENsdWJzOiBudW1iZXI7XG4gIHRvdGFsR3ltczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlYWd1ZUdyb3VwRXhwb3J0IHtcbiAgZ3JvdXA6IEdyb3VwO1xuICB0ZWFtczogVGVhbURldGFpbFtdO1xuICBjbHViczogQ2x1YltdO1xuICBneW1zOiBHeW1bXTtcbiAgc3RhdGlzdGljczogTGVhZ3VlR3JvdXBTdGF0aXN0aWNzO1xufVxuIl19
package/package.json CHANGED
@@ -38,9 +38,9 @@
38
38
  "@graphql-codegen/cli": "^5.0.7",
39
39
  "@graphql-codegen/typescript": "^4.1.6",
40
40
  "@stylistic/eslint-plugin": "^2",
41
- "@taimos/projen": "^0.1.28",
41
+ "@taimos/projen": "^0.1.29",
42
42
  "@types/jest": "^30.0.0",
43
- "@types/node": "^24.8.1",
43
+ "@types/node": "^24.9.1",
44
44
  "@typescript-eslint/eslint-plugin": "^8",
45
45
  "@typescript-eslint/parser": "^8",
46
46
  "commit-and-tag-version": "^12",
@@ -50,7 +50,7 @@
50
50
  "eslint-plugin-import": "^2.32.0",
51
51
  "jest": "^29.7.0",
52
52
  "jest-junit": "^16",
53
- "projen": "0.98.2",
53
+ "projen": "0.98.4",
54
54
  "projen-pipelines": "^0.3.0",
55
55
  "ts-jest": "^29.4.5",
56
56
  "ts-node": "^10.9.2",
@@ -73,7 +73,7 @@
73
73
  "publishConfig": {
74
74
  "access": "public"
75
75
  },
76
- "version": "0.0.23",
76
+ "version": "0.0.25",
77
77
  "jest": {
78
78
  "coverageProvider": "v8",
79
79
  "moduleNameMapper": {
@@ -0,0 +1,722 @@
1
+ {
2
+ "group": {
3
+ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
4
+ "number": 1,
5
+ "name": "Regionalliga Nord - Staffel 1",
6
+ "shortName": "RLN",
7
+ "season": {
8
+ "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
9
+ "name": "Saison 2024/2025",
10
+ "startDate": "2024-09-01",
11
+ "endDate": "2025-06-30"
12
+ },
13
+ "league": {
14
+ "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
15
+ "name": "Regionalliga Nord",
16
+ "shortName": "RLN",
17
+ "description": "Regional competition for northern teams",
18
+ "minAge": null,
19
+ "maxAge": null,
20
+ "matchdayDates": [
21
+ "2024-10-05",
22
+ "2024-11-16",
23
+ "2024-12-07",
24
+ "2025-01-18",
25
+ "2025-02-22",
26
+ "2025-03-15"
27
+ ]
28
+ },
29
+ "leader": {
30
+ "id": "d4e5f6a7-b8c9-0123-def1-234567890123",
31
+ "firstName": "Thomas",
32
+ "lastName": "Schmidt",
33
+ "email": "t.schmidt@example.com",
34
+ "phone": "+49 151 12345678"
35
+ },
36
+ "regulation": "Standard league regulations apply"
37
+ },
38
+ "teams": [
39
+ {
40
+ "id": "e5f6a7b8-c9d0-1234-ef12-345678901234",
41
+ "name": "Hamburg Dragons 1",
42
+ "withoutCompetition": false,
43
+ "secondRightToPlay": false,
44
+ "exemptionRequest": null,
45
+ "players": [
46
+ {
47
+ "id": "f6a7b8c9-d0e1-2345-f123-456789012345",
48
+ "firstName": "Max",
49
+ "lastName": "Mueller",
50
+ "email": "max.mueller@example.com",
51
+ "phone": "+49 160 11111111",
52
+ "gender": "m",
53
+ "dateOfBirth": "1995-03-15",
54
+ "uciCode": "10012345678",
55
+ "nationality": "GER",
56
+ "clubId": "11111111-1111-1111-1111-111111111111"
57
+ },
58
+ {
59
+ "id": "a7b8c9d0-e1f2-3456-1234-567890123456",
60
+ "firstName": "Felix",
61
+ "lastName": "Wagner",
62
+ "email": "felix.wagner@example.com",
63
+ "phone": "+49 160 11111112",
64
+ "gender": "m",
65
+ "dateOfBirth": "1997-07-22",
66
+ "uciCode": "10012345679",
67
+ "nationality": "GER",
68
+ "clubId": "11111111-1111-1111-1111-111111111111"
69
+ }
70
+ ],
71
+ "clubId": "11111111-1111-1111-1111-111111111111",
72
+ "sgClubId": null
73
+ },
74
+ {
75
+ "id": "b8c9d0e1-f2a3-4567-2345-678901234567",
76
+ "name": "Hamburg Dragons 2",
77
+ "withoutCompetition": false,
78
+ "secondRightToPlay": false,
79
+ "exemptionRequest": null,
80
+ "players": [
81
+ {
82
+ "id": "c9d0e1f2-a3b4-5678-3456-789012345678",
83
+ "firstName": "Jonas",
84
+ "lastName": "Becker",
85
+ "email": "jonas.becker@example.com",
86
+ "phone": "+49 160 11111113",
87
+ "gender": "m",
88
+ "dateOfBirth": "1998-11-08",
89
+ "uciCode": "10012345680",
90
+ "nationality": "GER",
91
+ "clubId": "11111111-1111-1111-1111-111111111111"
92
+ },
93
+ {
94
+ "id": "d0e1f2a3-b4c5-6789-4567-890123456789",
95
+ "firstName": "Leon",
96
+ "lastName": "Fischer",
97
+ "email": "leon.fischer@example.com",
98
+ "phone": "+49 160 11111114",
99
+ "gender": "m",
100
+ "dateOfBirth": "1999-05-19",
101
+ "uciCode": "10012345681",
102
+ "nationality": "GER",
103
+ "clubId": "11111111-1111-1111-1111-111111111111"
104
+ }
105
+ ],
106
+ "clubId": "11111111-1111-1111-1111-111111111111",
107
+ "sgClubId": null
108
+ },
109
+ {
110
+ "id": "e1f2a3b4-c5d6-7890-5678-901234567890",
111
+ "name": "Bremen Riders 1",
112
+ "withoutCompetition": false,
113
+ "secondRightToPlay": false,
114
+ "exemptionRequest": null,
115
+ "players": [
116
+ {
117
+ "id": "f2a3b4c5-d6e7-8901-6789-012345678901",
118
+ "firstName": "Paul",
119
+ "lastName": "Hoffmann",
120
+ "email": "paul.hoffmann@example.com",
121
+ "phone": "+49 160 22222221",
122
+ "gender": "m",
123
+ "dateOfBirth": "1996-02-12",
124
+ "uciCode": "10012345682",
125
+ "nationality": "GER",
126
+ "clubId": "22222222-2222-2222-2222-222222222222"
127
+ },
128
+ {
129
+ "id": "a3b4c5d6-e7f8-9012-7890-123456789012",
130
+ "firstName": "Tim",
131
+ "lastName": "Schulz",
132
+ "email": "tim.schulz@example.com",
133
+ "phone": "+49 160 22222222",
134
+ "gender": "m",
135
+ "dateOfBirth": "1994-09-27",
136
+ "uciCode": "10012345683",
137
+ "nationality": "GER",
138
+ "clubId": "22222222-2222-2222-2222-222222222222"
139
+ }
140
+ ],
141
+ "clubId": "22222222-2222-2222-2222-222222222222",
142
+ "sgClubId": null
143
+ },
144
+ {
145
+ "id": "b4c5d6e7-f8a9-0123-8901-234567890123",
146
+ "name": "Hannover Wheels 1",
147
+ "withoutCompetition": false,
148
+ "secondRightToPlay": false,
149
+ "exemptionRequest": null,
150
+ "players": [
151
+ {
152
+ "id": "c5d6e7f8-a9b0-1234-9012-345678901234",
153
+ "firstName": "Lukas",
154
+ "lastName": "Koch",
155
+ "email": "lukas.koch@example.com",
156
+ "phone": "+49 160 33333331",
157
+ "gender": "m",
158
+ "dateOfBirth": "2000-01-10",
159
+ "uciCode": "10012345684",
160
+ "nationality": "GER",
161
+ "clubId": "33333333-3333-3333-3333-333333333333"
162
+ },
163
+ {
164
+ "id": "d6e7f8a9-b0c1-2345-0123-456789012345",
165
+ "firstName": "Noah",
166
+ "lastName": "Weber",
167
+ "email": "noah.weber@example.com",
168
+ "phone": "+49 160 33333332",
169
+ "gender": "m",
170
+ "dateOfBirth": "2001-06-14",
171
+ "uciCode": "10012345685",
172
+ "nationality": "GER",
173
+ "clubId": "33333333-3333-3333-3333-333333333333"
174
+ }
175
+ ],
176
+ "clubId": "33333333-3333-3333-3333-333333333333",
177
+ "sgClubId": null
178
+ },
179
+ {
180
+ "id": "e7f8a9b0-c1d2-3456-1234-567890123456",
181
+ "name": "Kiel Cyclones 1",
182
+ "withoutCompetition": false,
183
+ "secondRightToPlay": false,
184
+ "exemptionRequest": null,
185
+ "players": [
186
+ {
187
+ "id": "f8a9b0c1-d2e3-4567-2345-678901234567",
188
+ "firstName": "Ben",
189
+ "lastName": "Richter",
190
+ "email": "ben.richter@example.com",
191
+ "phone": "+49 160 44444441",
192
+ "gender": "m",
193
+ "dateOfBirth": "1998-04-03",
194
+ "uciCode": "10012345686",
195
+ "nationality": "GER",
196
+ "clubId": "44444444-4444-4444-4444-444444444444"
197
+ },
198
+ {
199
+ "id": "a9b0c1d2-e3f4-5678-3456-789012345678",
200
+ "firstName": "Finn",
201
+ "lastName": "Klein",
202
+ "email": "finn.klein@example.com",
203
+ "phone": "+49 160 44444442",
204
+ "gender": "m",
205
+ "dateOfBirth": "1999-12-20",
206
+ "uciCode": "10012345687",
207
+ "nationality": "GER",
208
+ "clubId": "44444444-4444-4444-4444-444444444444"
209
+ }
210
+ ],
211
+ "clubId": "44444444-4444-4444-4444-444444444444",
212
+ "sgClubId": null
213
+ },
214
+ {
215
+ "id": "b0c1d2e3-f4a5-6789-4567-890123456789",
216
+ "name": "Luebeck Stars 1",
217
+ "withoutCompetition": false,
218
+ "secondRightToPlay": false,
219
+ "exemptionRequest": null,
220
+ "players": [
221
+ {
222
+ "id": "c1d2e3f4-a5b6-7890-5678-901234567890",
223
+ "firstName": "Elias",
224
+ "lastName": "Braun",
225
+ "email": "elias.braun@example.com",
226
+ "phone": "+49 160 55555551",
227
+ "gender": "m",
228
+ "dateOfBirth": "1997-08-16",
229
+ "uciCode": "10012345688",
230
+ "nationality": "GER",
231
+ "clubId": "55555555-5555-5555-5555-555555555555"
232
+ },
233
+ {
234
+ "id": "d2e3f4a5-b6c7-8901-6789-012345678901",
235
+ "firstName": "Emil",
236
+ "lastName": "Neumann",
237
+ "email": "emil.neumann@example.com",
238
+ "phone": "+49 160 55555552",
239
+ "gender": "m",
240
+ "dateOfBirth": "1996-11-25",
241
+ "uciCode": "10012345689",
242
+ "nationality": "GER",
243
+ "clubId": "55555555-5555-5555-5555-555555555555"
244
+ }
245
+ ],
246
+ "clubId": "55555555-5555-5555-5555-555555555555",
247
+ "sgClubId": null
248
+ },
249
+ {
250
+ "id": "e3f4a5b6-c7d8-9012-7890-123456789012",
251
+ "name": "Luebeck Stars 2",
252
+ "withoutCompetition": false,
253
+ "secondRightToPlay": false,
254
+ "exemptionRequest": null,
255
+ "players": [
256
+ {
257
+ "id": "f4a5b6c7-d8e9-0123-8901-234567890123",
258
+ "firstName": "Anton",
259
+ "lastName": "Wolf",
260
+ "email": "anton.wolf@example.com",
261
+ "phone": "+49 160 55555553",
262
+ "gender": "m",
263
+ "dateOfBirth": "2000-03-07",
264
+ "uciCode": "10012345690",
265
+ "nationality": "GER",
266
+ "clubId": "55555555-5555-5555-5555-555555555555"
267
+ },
268
+ {
269
+ "id": "a5b6c7d8-e9f0-1234-9012-345678901234",
270
+ "firstName": "Henry",
271
+ "lastName": "Krause",
272
+ "email": "henry.krause@example.com",
273
+ "phone": "+49 160 55555554",
274
+ "gender": "m",
275
+ "dateOfBirth": "2001-09-11",
276
+ "uciCode": "10012345691",
277
+ "nationality": "GER",
278
+ "clubId": "55555555-5555-5555-5555-555555555555"
279
+ }
280
+ ],
281
+ "clubId": "55555555-5555-5555-5555-555555555555",
282
+ "sgClubId": null
283
+ },
284
+ {
285
+ "id": "b6c7d8e9-f0a1-2345-0123-456789012345",
286
+ "name": "Oldenburg Thunder 1",
287
+ "withoutCompetition": false,
288
+ "secondRightToPlay": false,
289
+ "exemptionRequest": null,
290
+ "players": [
291
+ {
292
+ "id": "c7d8e9f0-a1b2-3456-1234-567890123456",
293
+ "firstName": "Oskar",
294
+ "lastName": "Lange",
295
+ "email": "oskar.lange@example.com",
296
+ "phone": "+49 160 66666661",
297
+ "gender": "m",
298
+ "dateOfBirth": "1995-05-30",
299
+ "uciCode": "10012345692",
300
+ "nationality": "GER",
301
+ "clubId": "66666666-6666-6666-6666-666666666666"
302
+ },
303
+ {
304
+ "id": "d8e9f0a1-b2c3-4567-2345-678901234567",
305
+ "firstName": "Theo",
306
+ "lastName": "Zimmermann",
307
+ "email": "theo.zimmermann@example.com",
308
+ "phone": "+49 160 66666662",
309
+ "gender": "m",
310
+ "dateOfBirth": "1994-10-18",
311
+ "uciCode": "10012345693",
312
+ "nationality": "GER",
313
+ "clubId": "66666666-6666-6666-6666-666666666666"
314
+ }
315
+ ],
316
+ "clubId": "66666666-6666-6666-6666-666666666666",
317
+ "sgClubId": null
318
+ },
319
+ {
320
+ "id": "e9f0a1b2-c3d4-5678-3456-789012345678",
321
+ "name": "Rostock Eagles 1",
322
+ "withoutCompetition": false,
323
+ "secondRightToPlay": false,
324
+ "exemptionRequest": null,
325
+ "players": [
326
+ {
327
+ "id": "f0a1b2c3-d4e5-6789-4567-890123456789",
328
+ "firstName": "Matteo",
329
+ "lastName": "Kraus",
330
+ "email": "matteo.kraus@example.com",
331
+ "phone": "+49 160 77777771",
332
+ "gender": "m",
333
+ "dateOfBirth": "1999-02-28",
334
+ "uciCode": "10012345694",
335
+ "nationality": "GER",
336
+ "clubId": "77777777-7777-7777-7777-777777777777"
337
+ },
338
+ {
339
+ "id": "a1b2c3d4-e5f6-7890-5678-901234567890",
340
+ "firstName": "Julian",
341
+ "lastName": "Hartmann",
342
+ "email": "julian.hartmann@example.com",
343
+ "phone": "+49 160 77777772",
344
+ "gender": "m",
345
+ "dateOfBirth": "1998-07-13",
346
+ "uciCode": "10012345695",
347
+ "nationality": "GER",
348
+ "clubId": "77777777-7777-7777-7777-777777777777"
349
+ }
350
+ ],
351
+ "clubId": "77777777-7777-7777-7777-777777777777",
352
+ "sgClubId": null
353
+ },
354
+ {
355
+ "id": "f1a2b3c4-d5e6-8901-6789-012345678901",
356
+ "name": "Schwerin Racers 1",
357
+ "withoutCompetition": false,
358
+ "secondRightToPlay": false,
359
+ "exemptionRequest": null,
360
+ "players": [
361
+ {
362
+ "id": "a2b3c4d5-e6f7-9012-7890-123456789012",
363
+ "firstName": "Simon",
364
+ "lastName": "Vogt",
365
+ "email": "simon.vogt@example.com",
366
+ "phone": "+49 160 88888881",
367
+ "gender": "m",
368
+ "dateOfBirth": "1997-12-05",
369
+ "uciCode": "10012345696",
370
+ "nationality": "GER",
371
+ "clubId": "88888888-8888-8888-8888-888888888888"
372
+ },
373
+ {
374
+ "id": "b3c4d5e6-f7a8-0123-8901-234567890123",
375
+ "firstName": "David",
376
+ "lastName": "Peters",
377
+ "email": "david.peters@example.com",
378
+ "phone": "+49 160 88888882",
379
+ "gender": "m",
380
+ "dateOfBirth": "1996-04-21",
381
+ "uciCode": "10012345697",
382
+ "nationality": "GER",
383
+ "clubId": "88888888-8888-8888-8888-888888888888"
384
+ }
385
+ ],
386
+ "clubId": "88888888-8888-8888-8888-888888888888",
387
+ "sgClubId": null
388
+ },
389
+ {
390
+ "id": "c4d5e6f7-a8b9-1234-9012-345678901234",
391
+ "name": "Flensburg Flames 1",
392
+ "withoutCompetition": false,
393
+ "secondRightToPlay": false,
394
+ "exemptionRequest": null,
395
+ "players": [
396
+ {
397
+ "id": "d5e6f7a8-b9c0-2345-0123-456789012345",
398
+ "firstName": "Moritz",
399
+ "lastName": "Schroeder",
400
+ "email": "moritz.schroeder@example.com",
401
+ "phone": "+49 160 99999991",
402
+ "gender": "m",
403
+ "dateOfBirth": "2000-08-09",
404
+ "uciCode": "10012345698",
405
+ "nationality": "GER",
406
+ "clubId": "99999999-9999-9999-9999-999999999999"
407
+ },
408
+ {
409
+ "id": "e6f7a8b9-c0d1-3456-1234-567890123456",
410
+ "firstName": "Jakob",
411
+ "lastName": "Lehmann",
412
+ "email": "jakob.lehmann@example.com",
413
+ "phone": "+49 160 99999992",
414
+ "gender": "m",
415
+ "dateOfBirth": "2001-03-17",
416
+ "uciCode": "10012345699",
417
+ "nationality": "GER",
418
+ "clubId": "99999999-9999-9999-9999-999999999999"
419
+ }
420
+ ],
421
+ "clubId": "99999999-9999-9999-9999-999999999999",
422
+ "sgClubId": null
423
+ },
424
+ {
425
+ "id": "f7a8b9c0-d1e2-4567-2345-678901234567",
426
+ "name": "SG Wolfsburg/Braunschweig 1",
427
+ "withoutCompetition": false,
428
+ "secondRightToPlay": false,
429
+ "exemptionRequest": null,
430
+ "players": [
431
+ {
432
+ "id": "a8b9c0d1-e2f3-5678-3456-789012345678",
433
+ "firstName": "Niklas",
434
+ "lastName": "Huber",
435
+ "email": "niklas.huber@example.com",
436
+ "phone": "+49 160 00000001",
437
+ "gender": "m",
438
+ "dateOfBirth": "1995-11-23",
439
+ "uciCode": "10012345700",
440
+ "nationality": "GER",
441
+ "clubId": "00000000-0000-0000-0000-000000000000"
442
+ },
443
+ {
444
+ "id": "b9c0d1e2-f3a4-6789-4567-890123456789",
445
+ "firstName": "Robin",
446
+ "lastName": "Gross",
447
+ "email": "robin.gross@example.com",
448
+ "phone": "+49 160 00000002",
449
+ "gender": "m",
450
+ "dateOfBirth": "1994-06-08",
451
+ "uciCode": "10012345701",
452
+ "nationality": "GER",
453
+ "clubId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
454
+ }
455
+ ],
456
+ "clubId": "00000000-0000-0000-0000-000000000000",
457
+ "sgClubId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
458
+ }
459
+ ],
460
+ "clubs": [
461
+ {
462
+ "id": "11111111-1111-1111-1111-111111111111",
463
+ "name": "RC Hamburg Dragons",
464
+ "shortName": "HHD",
465
+ "preferredDates": [
466
+ {
467
+ "preferenceDate": "2024-10-05",
468
+ "status": "PREFERRED",
469
+ "notes": null
470
+ },
471
+ {
472
+ "preferenceDate": "2024-11-16",
473
+ "status": "AVAILABLE",
474
+ "notes": null
475
+ },
476
+ {
477
+ "preferenceDate": "2025-01-18",
478
+ "status": "PREFERRED",
479
+ "notes": null
480
+ }
481
+ ]
482
+ },
483
+ {
484
+ "id": "22222222-2222-2222-2222-222222222222",
485
+ "name": "RV Bremen Riders",
486
+ "shortName": "BRR",
487
+ "preferredDates": [
488
+ {
489
+ "preferenceDate": "2024-11-16",
490
+ "status": "PREFERRED",
491
+ "notes": null
492
+ },
493
+ {
494
+ "preferenceDate": "2025-02-22",
495
+ "status": "PREFERRED",
496
+ "notes": null
497
+ }
498
+ ]
499
+ },
500
+ {
501
+ "id": "33333333-3333-3333-3333-333333333333",
502
+ "name": "RSC Hannover Wheels",
503
+ "shortName": "HWH",
504
+ "preferredDates": [
505
+ {
506
+ "preferenceDate": "2024-12-07",
507
+ "status": "PREFERRED",
508
+ "notes": null
509
+ },
510
+ {
511
+ "preferenceDate": "2025-03-15",
512
+ "status": "AVAILABLE",
513
+ "notes": null
514
+ }
515
+ ]
516
+ },
517
+ {
518
+ "id": "44444444-4444-4444-4444-444444444444",
519
+ "name": "RV Kiel Cyclones",
520
+ "shortName": "KIC",
521
+ "preferredDates": [
522
+ {
523
+ "preferenceDate": "2024-10-05",
524
+ "status": "AVAILABLE",
525
+ "notes": null
526
+ },
527
+ {
528
+ "preferenceDate": "2025-01-18",
529
+ "status": "PREFERRED",
530
+ "notes": null
531
+ },
532
+ {
533
+ "preferenceDate": "2025-03-15",
534
+ "status": "PREFERRED",
535
+ "notes": null
536
+ }
537
+ ]
538
+ },
539
+ {
540
+ "id": "55555555-5555-5555-5555-555555555555",
541
+ "name": "RC Luebeck Stars",
542
+ "shortName": "LBS",
543
+ "preferredDates": [
544
+ {
545
+ "preferenceDate": "2024-11-16",
546
+ "status": "PREFERRED",
547
+ "notes": null
548
+ },
549
+ {
550
+ "preferenceDate": "2024-12-07",
551
+ "status": "AVAILABLE",
552
+ "notes": null
553
+ }
554
+ ]
555
+ },
556
+ {
557
+ "id": "66666666-6666-6666-6666-666666666666",
558
+ "name": "RV Oldenburg Thunder",
559
+ "shortName": "OLT",
560
+ "preferredDates": [
561
+ {
562
+ "preferenceDate": "2024-10-05",
563
+ "status": "PREFERRED",
564
+ "notes": null
565
+ },
566
+ {
567
+ "preferenceDate": "2025-02-22",
568
+ "status": "PREFERRED",
569
+ "notes": null
570
+ }
571
+ ]
572
+ },
573
+ {
574
+ "id": "77777777-7777-7777-7777-777777777777",
575
+ "name": "RSV Rostock Eagles",
576
+ "shortName": "ROE",
577
+ "preferredDates": [
578
+ {
579
+ "preferenceDate": "2024-12-07",
580
+ "status": "PREFERRED",
581
+ "notes": null
582
+ },
583
+ {
584
+ "preferenceDate": "2025-01-18",
585
+ "status": "AVAILABLE",
586
+ "notes": null
587
+ }
588
+ ]
589
+ },
590
+ {
591
+ "id": "88888888-8888-8888-8888-888888888888",
592
+ "name": "RC Schwerin Racers",
593
+ "shortName": "SCR",
594
+ "preferredDates": [
595
+ {
596
+ "preferenceDate": "2024-11-16",
597
+ "status": "AVAILABLE",
598
+ "notes": null
599
+ },
600
+ {
601
+ "preferenceDate": "2025-03-15",
602
+ "status": "PREFERRED",
603
+ "notes": null
604
+ }
605
+ ]
606
+ },
607
+ {
608
+ "id": "99999999-9999-9999-9999-999999999999",
609
+ "name": "RV Flensburg Flames",
610
+ "shortName": "FLF",
611
+ "preferredDates": [
612
+ {
613
+ "preferenceDate": "2024-10-05",
614
+ "status": "PREFERRED",
615
+ "notes": null
616
+ },
617
+ {
618
+ "preferenceDate": "2025-02-22",
619
+ "status": "AVAILABLE",
620
+ "notes": null
621
+ }
622
+ ]
623
+ },
624
+ {
625
+ "id": "00000000-0000-0000-0000-000000000000",
626
+ "name": "RSC Wolfsburg Velocity",
627
+ "shortName": "WOV",
628
+ "preferredDates": [
629
+ {
630
+ "preferenceDate": "2024-12-07",
631
+ "status": "PREFERRED",
632
+ "notes": null
633
+ },
634
+ {
635
+ "preferenceDate": "2025-01-18",
636
+ "status": "PREFERRED",
637
+ "notes": null
638
+ }
639
+ ]
640
+ },
641
+ {
642
+ "id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
643
+ "name": "RV Braunschweig Lions",
644
+ "shortName": "BSL",
645
+ "preferredDates": [
646
+ {
647
+ "preferenceDate": "2024-11-16",
648
+ "status": "PREFERRED",
649
+ "notes": null
650
+ }
651
+ ]
652
+ }
653
+ ],
654
+ "gyms": [
655
+ {
656
+ "id": "gym1-111-1111-1111-111111111111",
657
+ "name": "Sporthalle Hamburg-Nord",
658
+ "availableFields": "2 courts available",
659
+ "address": {
660
+ "street": "Sportweg 15",
661
+ "zip": "22299",
662
+ "city": "Hamburg",
663
+ "country": "DE"
664
+ },
665
+ "clubId": "11111111-1111-1111-1111-111111111111"
666
+ },
667
+ {
668
+ "id": "gym2-222-2222-2222-222222222222",
669
+ "name": "Turnhalle Bremen-Ost",
670
+ "availableFields": "1 court",
671
+ "address": {
672
+ "street": "Hallenstraße 42",
673
+ "zip": "28329",
674
+ "city": "Bremen",
675
+ "country": "DE"
676
+ },
677
+ "clubId": "22222222-2222-2222-2222-222222222222"
678
+ },
679
+ {
680
+ "id": "gym3-333-3333-3333-333333333333",
681
+ "name": "Mehrzweckhalle Hannover",
682
+ "availableFields": "2 courts available",
683
+ "address": {
684
+ "street": "Stadionweg 8",
685
+ "zip": "30519",
686
+ "city": "Hannover",
687
+ "country": "DE"
688
+ },
689
+ "clubId": "33333333-3333-3333-3333-333333333333"
690
+ },
691
+ {
692
+ "id": "gym4-444-4444-4444-444444444444",
693
+ "name": "Kieler Sporthalle",
694
+ "availableFields": "1 court",
695
+ "address": {
696
+ "street": "Fördeblick 23",
697
+ "zip": "24159",
698
+ "city": "Kiel",
699
+ "country": "DE"
700
+ },
701
+ "clubId": "44444444-4444-4444-4444-444444444444"
702
+ },
703
+ {
704
+ "id": "gym5-555-5555-5555-555555555555",
705
+ "name": "Lübecker Stadtsporthalle",
706
+ "availableFields": "2 courts available",
707
+ "address": {
708
+ "street": "Hansestraße 56",
709
+ "zip": "23568",
710
+ "city": "Lübeck",
711
+ "country": "DE"
712
+ },
713
+ "clubId": "55555555-5555-5555-5555-555555555555"
714
+ }
715
+ ],
716
+ "statistics": {
717
+ "totalTeams": 12,
718
+ "totalPlayers": 24,
719
+ "totalClubs": 11,
720
+ "totalGyms": 5
721
+ }
722
+ }