@taimos/radball-digital-api 0.0.47 → 0.0.49

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,365 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://radball.digital/schemas/competition-group-export.json",
4
+ "title": "Competition Group Export",
5
+ "description": "Schema for exporting competition 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/CompetitionGroupDetail"
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/CompetitionGroupStatistics"
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
+ "Association": {
54
+ "type": "object",
55
+ "required": ["id", "name", "shortName"],
56
+ "properties": {
57
+ "id": {
58
+ "type": "string",
59
+ "format": "uuid"
60
+ },
61
+ "name": {
62
+ "type": "string"
63
+ },
64
+ "shortName": {
65
+ "type": "string"
66
+ }
67
+ }
68
+ },
69
+ "Competition": {
70
+ "type": "object",
71
+ "required": ["id", "name", "shortName", "description", "association", "startDate", "endDate", "registrationStart", "registrationEnd", "registrationPermission", "minAge", "maxAge", "coordinators", "regulationFileUrl"],
72
+ "properties": {
73
+ "id": {
74
+ "type": "string",
75
+ "format": "uuid"
76
+ },
77
+ "name": {
78
+ "type": "string"
79
+ },
80
+ "shortName": {
81
+ "type": "string"
82
+ },
83
+ "description": {
84
+ "type": ["string", "null"]
85
+ },
86
+ "association": {
87
+ "$ref": "#/definitions/Association"
88
+ },
89
+ "startDate": {
90
+ "type": "string",
91
+ "format": "date"
92
+ },
93
+ "endDate": {
94
+ "type": "string",
95
+ "format": "date"
96
+ },
97
+ "registrationStart": {
98
+ "type": "string",
99
+ "format": "date"
100
+ },
101
+ "registrationEnd": {
102
+ "type": "string",
103
+ "format": "date"
104
+ },
105
+ "registrationPermission": {
106
+ "type": "string",
107
+ "enum": ["ALL_CLUBS", "ASSOCIATIONS_ONLY", "INVITE_ONLY"]
108
+ },
109
+ "minAge": {
110
+ "type": ["integer", "null"]
111
+ },
112
+ "maxAge": {
113
+ "type": ["integer", "null"]
114
+ },
115
+ "coordinators": {
116
+ "type": "array",
117
+ "items": {
118
+ "$ref": "#/definitions/Coordinator"
119
+ }
120
+ },
121
+ "regulationFileUrl": {
122
+ "type": ["string", "null"],
123
+ "format": "uri"
124
+ }
125
+ }
126
+ },
127
+ "Coordinator": {
128
+ "type": "object",
129
+ "required": ["id", "firstName", "lastName", "email", "phone"],
130
+ "properties": {
131
+ "id": {
132
+ "type": "string",
133
+ "format": "uuid"
134
+ },
135
+ "firstName": {
136
+ "type": "string"
137
+ },
138
+ "lastName": {
139
+ "type": "string"
140
+ },
141
+ "email": {
142
+ "type": "string",
143
+ "format": "email"
144
+ },
145
+ "phone": {
146
+ "type": ["string", "null"]
147
+ }
148
+ }
149
+ },
150
+ "Leader": {
151
+ "type": "object",
152
+ "required": ["id", "firstName", "lastName", "email", "phone"],
153
+ "properties": {
154
+ "id": {
155
+ "type": "string",
156
+ "format": "uuid"
157
+ },
158
+ "firstName": {
159
+ "type": "string"
160
+ },
161
+ "lastName": {
162
+ "type": "string"
163
+ },
164
+ "email": {
165
+ "type": "string",
166
+ "format": "email"
167
+ },
168
+ "phone": {
169
+ "type": ["string", "null"]
170
+ }
171
+ }
172
+ },
173
+ "CompetitionGroupDetail": {
174
+ "type": "object",
175
+ "required": ["id", "number", "name", "shortName", "competition", "leader", "regulation"],
176
+ "properties": {
177
+ "id": {
178
+ "type": "string",
179
+ "format": "uuid"
180
+ },
181
+ "number": {
182
+ "type": "integer"
183
+ },
184
+ "name": {
185
+ "type": "string"
186
+ },
187
+ "shortName": {
188
+ "type": "string"
189
+ },
190
+ "competition": {
191
+ "$ref": "#/definitions/Competition"
192
+ },
193
+ "leader": {
194
+ "oneOf": [
195
+ { "$ref": "#/definitions/Leader" },
196
+ { "type": "null" }
197
+ ]
198
+ },
199
+ "regulation": {
200
+ "type": "string"
201
+ }
202
+ }
203
+ },
204
+ "Person": {
205
+ "type": "object",
206
+ "required": ["id", "firstName", "lastName", "gender", "dateOfBirth", "uciCode", "nationality", "clubId"],
207
+ "properties": {
208
+ "id": {
209
+ "type": "string",
210
+ "format": "uuid"
211
+ },
212
+ "firstName": {
213
+ "type": "string"
214
+ },
215
+ "lastName": {
216
+ "type": "string"
217
+ },
218
+ "email": {
219
+ "type": ["string", "null"],
220
+ "format": "email"
221
+ },
222
+ "phone": {
223
+ "type": ["string", "null"]
224
+ },
225
+ "gender": {
226
+ "type": "string"
227
+ },
228
+ "dateOfBirth": {
229
+ "type": "string",
230
+ "format": "date"
231
+ },
232
+ "uciCode": {
233
+ "type": "string"
234
+ },
235
+ "nationality": {
236
+ "type": "string"
237
+ },
238
+ "clubId": {
239
+ "type": "string",
240
+ "format": "uuid"
241
+ }
242
+ }
243
+ },
244
+ "PreferredMatchdayDate": {
245
+ "type": "object",
246
+ "required": ["preferenceDate", "status", "notes", "gymId"],
247
+ "properties": {
248
+ "preferenceDate": {
249
+ "type": "string",
250
+ "format": "date"
251
+ },
252
+ "status": {
253
+ "type": "string",
254
+ "enum": ["PREFERRED", "AVAILABLE"]
255
+ },
256
+ "notes": {
257
+ "type": ["string", "null"]
258
+ },
259
+ "gymId": {
260
+ "type": ["string", "null"],
261
+ "format": "uuid"
262
+ }
263
+ }
264
+ },
265
+ "Club": {
266
+ "type": "object",
267
+ "required": ["id", "name", "shortName", "preferredDates"],
268
+ "properties": {
269
+ "id": {
270
+ "type": "string",
271
+ "format": "uuid"
272
+ },
273
+ "name": {
274
+ "type": "string"
275
+ },
276
+ "shortName": {
277
+ "type": "string"
278
+ },
279
+ "preferredDates": {
280
+ "type": "array",
281
+ "items": {
282
+ "$ref": "#/definitions/PreferredMatchdayDate"
283
+ }
284
+ }
285
+ }
286
+ },
287
+ "TeamDetail": {
288
+ "type": "object",
289
+ "required": ["id", "name", "withoutCompetition", "secondRightToPlay", "exemptionRequest", "players", "clubId", "sgClubId"],
290
+ "properties": {
291
+ "id": {
292
+ "type": "string",
293
+ "format": "uuid"
294
+ },
295
+ "name": {
296
+ "type": "string"
297
+ },
298
+ "withoutCompetition": {
299
+ "type": "boolean"
300
+ },
301
+ "secondRightToPlay": {
302
+ "type": "boolean"
303
+ },
304
+ "exemptionRequest": {
305
+ "type": ["string", "null"]
306
+ },
307
+ "players": {
308
+ "type": "array",
309
+ "items": {
310
+ "$ref": "#/definitions/Person"
311
+ }
312
+ },
313
+ "clubId": {
314
+ "type": "string",
315
+ "format": "uuid"
316
+ },
317
+ "sgClubId": {
318
+ "type": ["string", "null"],
319
+ "format": "uuid"
320
+ }
321
+ }
322
+ },
323
+ "Gym": {
324
+ "type": "object",
325
+ "required": ["id", "name", "availableFields", "address", "clubId"],
326
+ "properties": {
327
+ "id": {
328
+ "type": "string",
329
+ "format": "uuid"
330
+ },
331
+ "name": {
332
+ "type": "string"
333
+ },
334
+ "availableFields": {
335
+ "type": "string"
336
+ },
337
+ "address": {
338
+ "$ref": "#/definitions/Address"
339
+ },
340
+ "clubId": {
341
+ "type": "string",
342
+ "format": "uuid"
343
+ }
344
+ }
345
+ },
346
+ "CompetitionGroupStatistics": {
347
+ "type": "object",
348
+ "required": ["totalTeams", "totalPlayers", "totalClubs", "totalGyms"],
349
+ "properties": {
350
+ "totalTeams": {
351
+ "type": "integer"
352
+ },
353
+ "totalPlayers": {
354
+ "type": "integer"
355
+ },
356
+ "totalClubs": {
357
+ "type": "integer"
358
+ },
359
+ "totalGyms": {
360
+ "type": "integer"
361
+ }
362
+ }
363
+ }
364
+ }
365
+ }
@@ -0,0 +1,106 @@
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 Association {
14
+ id: string;
15
+ name: string;
16
+ shortName: string;
17
+ }
18
+ export interface Competition {
19
+ id: string;
20
+ name: string;
21
+ shortName: string;
22
+ description: string | null;
23
+ association: Association;
24
+ startDate: string;
25
+ endDate: string;
26
+ registrationStart: string;
27
+ registrationEnd: string;
28
+ registrationPermission: RegistrationPermission;
29
+ minAge: number | null;
30
+ maxAge: number | null;
31
+ coordinators: Coordinator[];
32
+ regulationFileUrl: string | null;
33
+ }
34
+ export type RegistrationPermission = 'ALL_CLUBS' | 'ASSOCIATIONS_ONLY' | 'INVITE_ONLY';
35
+ export interface Coordinator {
36
+ id: string;
37
+ firstName: string;
38
+ lastName: string;
39
+ email: string;
40
+ phone: string | null;
41
+ }
42
+ export interface Leader {
43
+ id: string;
44
+ firstName: string;
45
+ lastName: string;
46
+ email: string;
47
+ phone: string | null;
48
+ }
49
+ export interface CompetitionGroupDetail {
50
+ id: string;
51
+ number: number;
52
+ name: string;
53
+ shortName: string;
54
+ competition: Competition;
55
+ leader: Leader | null;
56
+ regulation: string;
57
+ }
58
+ export interface Person {
59
+ id: string;
60
+ firstName: string;
61
+ lastName: string;
62
+ email: string | null;
63
+ phone: string | null;
64
+ gender: string;
65
+ dateOfBirth: string;
66
+ uciCode: string;
67
+ nationality: string;
68
+ clubId: string;
69
+ }
70
+ export type PreferredDateStatus = 'PREFERRED' | 'AVAILABLE';
71
+ export interface PreferredMatchdayDate {
72
+ preferenceDate: string;
73
+ status: PreferredDateStatus;
74
+ notes: string | null;
75
+ gymId: string | null;
76
+ }
77
+ export interface TeamDetail {
78
+ id: string;
79
+ name: string;
80
+ withoutCompetition: boolean;
81
+ secondRightToPlay: boolean;
82
+ exemptionRequest: string | null;
83
+ players: Person[];
84
+ clubId: string;
85
+ sgClubId: string | null;
86
+ }
87
+ export interface Gym {
88
+ id: string;
89
+ name: string;
90
+ availableFields: string;
91
+ address: Address;
92
+ clubId: string;
93
+ }
94
+ export interface CompetitionGroupStatistics {
95
+ totalTeams: number;
96
+ totalPlayers: number;
97
+ totalClubs: number;
98
+ totalGyms: number;
99
+ }
100
+ export interface CompetitionGroupExport {
101
+ group: CompetitionGroupDetail;
102
+ teams: TeamDetail[];
103
+ clubs: Club[];
104
+ gyms: Gym[];
105
+ statistics: CompetitionGroupStatistics;
106
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0aXRpb24tZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwb3J0L2NvbXBldGl0aW9uLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFkZHJlc3Mge1xuICBzdHJlZXQ6IHN0cmluZztcbiAgemlwOiBzdHJpbmc7XG4gIGNpdHk6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdWIge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICBwcmVmZXJyZWREYXRlczogUHJlZmVycmVkTWF0Y2hkYXlEYXRlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzb2NpYXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBldGl0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzaG9ydE5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gIGFzc29jaWF0aW9uOiBBc3NvY2lhdGlvbjtcbiAgc3RhcnREYXRlOiBzdHJpbmc7XG4gIGVuZERhdGU6IHN0cmluZztcbiAgcmVnaXN0cmF0aW9uU3RhcnQ6IHN0cmluZztcbiAgcmVnaXN0cmF0aW9uRW5kOiBzdHJpbmc7XG4gIHJlZ2lzdHJhdGlvblBlcm1pc3Npb246IFJlZ2lzdHJhdGlvblBlcm1pc3Npb247XG4gIG1pbkFnZTogbnVtYmVyIHwgbnVsbDtcbiAgbWF4QWdlOiBudW1iZXIgfCBudWxsO1xuICBjb29yZGluYXRvcnM6IENvb3JkaW5hdG9yW107XG4gIHJlZ3VsYXRpb25GaWxlVXJsOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBSZWdpc3RyYXRpb25QZXJtaXNzaW9uID0gJ0FMTF9DTFVCUycgfCAnQVNTT0NJQVRJT05TX09OTFknIHwgJ0lOVklURV9PTkxZJztcblxuZXhwb3J0IGludGVyZmFjZSBDb29yZGluYXRvciB7XG4gIGlkOiBzdHJpbmc7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZWFkZXIge1xuICBpZDogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmU6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGV0aXRpb25Hcm91cERldGFpbCB7XG4gIGlkOiBzdHJpbmc7XG4gIG51bWJlcjogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICBjb21wZXRpdGlvbjogQ29tcGV0aXRpb247XG4gIGxlYWRlcjogTGVhZGVyIHwgbnVsbDtcbiAgcmVndWxhdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nIHwgbnVsbDtcbiAgcGhvbmU6IHN0cmluZyB8IG51bGw7XG4gIGdlbmRlcjogc3RyaW5nO1xuICBkYXRlT2ZCaXJ0aDogc3RyaW5nO1xuICB1Y2lDb2RlOiBzdHJpbmc7XG4gIG5hdGlvbmFsaXR5OiBzdHJpbmc7XG4gIGNsdWJJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBQcmVmZXJyZWREYXRlU3RhdHVzID0gJ1BSRUZFUlJFRCcgfCAnQVZBSUxBQkxFJztcblxuZXhwb3J0IGludGVyZmFjZSBQcmVmZXJyZWRNYXRjaGRheURhdGUge1xuICBwcmVmZXJlbmNlRGF0ZTogc3RyaW5nO1xuICBzdGF0dXM6IFByZWZlcnJlZERhdGVTdGF0dXM7XG4gIG5vdGVzOiBzdHJpbmcgfCBudWxsO1xuICBneW1JZDogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZWFtRGV0YWlsIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB3aXRob3V0Q29tcGV0aXRpb246IGJvb2xlYW47XG4gIHNlY29uZFJpZ2h0VG9QbGF5OiBib29sZWFuO1xuICBleGVtcHRpb25SZXF1ZXN0OiBzdHJpbmcgfCBudWxsO1xuICBwbGF5ZXJzOiBQZXJzb25bXTtcbiAgY2x1YklkOiBzdHJpbmc7XG4gIHNnQ2x1YklkOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEd5bSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgYXZhaWxhYmxlRmllbGRzOiBzdHJpbmc7XG4gIGFkZHJlc3M6IEFkZHJlc3M7XG4gIGNsdWJJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBldGl0aW9uR3JvdXBTdGF0aXN0aWNzIHtcbiAgdG90YWxUZWFtczogbnVtYmVyO1xuICB0b3RhbFBsYXllcnM6IG51bWJlcjtcbiAgdG90YWxDbHViczogbnVtYmVyO1xuICB0b3RhbEd5bXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wZXRpdGlvbkdyb3VwRXhwb3J0IHtcbiAgZ3JvdXA6IENvbXBldGl0aW9uR3JvdXBEZXRhaWw7XG4gIHRlYW1zOiBUZWFtRGV0YWlsW107XG4gIGNsdWJzOiBDbHViW107XG4gIGd5bXM6IEd5bVtdO1xuICBzdGF0aXN0aWNzOiBDb21wZXRpdGlvbkdyb3VwU3RhdGlzdGljcztcbn1cbiJdfQ==
package/package.json CHANGED
@@ -39,7 +39,7 @@
39
39
  "@graphql-codegen/cli": "^5.0.7",
40
40
  "@graphql-codegen/typescript": "^4.1.6",
41
41
  "@stylistic/eslint-plugin": "^2",
42
- "@taimos/projen": "^0.1.44",
42
+ "@taimos/projen": "^0.1.45",
43
43
  "@types/jest": "^30.0.0",
44
44
  "@types/node": "^24.10.13",
45
45
  "@typescript-eslint/eslint-plugin": "^8",
@@ -51,7 +51,7 @@
51
51
  "eslint-plugin-import": "^2.32.0",
52
52
  "jest": "^29.7.0",
53
53
  "jest-junit": "^16",
54
- "projen": "0.99.12",
54
+ "projen": "0.99.16",
55
55
  "projen-pipelines": "^0.3.3",
56
56
  "ts-jest": "^29.4.6",
57
57
  "ts-node": "^10.9.2",
@@ -74,7 +74,7 @@
74
74
  "publishConfig": {
75
75
  "access": "public"
76
76
  },
77
- "version": "0.0.47",
77
+ "version": "0.0.49",
78
78
  "jest": {
79
79
  "coverageProvider": "v8",
80
80
  "moduleNameMapper": {
@@ -0,0 +1,436 @@
1
+ {
2
+ "group": {
3
+ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
4
+ "number": 1,
5
+ "name": "Deutschlandpokal U19 - Gruppe A",
6
+ "shortName": "DPU19-A",
7
+ "competition": {
8
+ "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
9
+ "name": "Deutschlandpokal U19",
10
+ "shortName": "DPU19",
11
+ "description": "National cup competition for U19 radball teams",
12
+ "association": {
13
+ "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
14
+ "name": "Bund Deutscher Radfahrer",
15
+ "shortName": "BDR"
16
+ },
17
+ "startDate": "2025-03-01",
18
+ "endDate": "2025-06-15",
19
+ "registrationStart": "2025-01-15",
20
+ "registrationEnd": "2025-02-28",
21
+ "registrationPermission": "ALL_CLUBS",
22
+ "minAge": null,
23
+ "maxAge": 19,
24
+ "coordinators": [
25
+ {
26
+ "id": "d4e5f6a7-b8c9-0123-def1-234567890123",
27
+ "firstName": "Klaus",
28
+ "lastName": "Berger",
29
+ "email": "k.berger@example.com",
30
+ "phone": "+49 171 12345678"
31
+ },
32
+ {
33
+ "id": "e5f6a7b8-c9d0-1234-ef12-345678901234",
34
+ "firstName": "Martina",
35
+ "lastName": "Schneider",
36
+ "email": "m.schneider@example.com",
37
+ "phone": "+49 172 87654321"
38
+ }
39
+ ],
40
+ "regulationFileUrl": null
41
+ },
42
+ "leader": {
43
+ "id": "f6a7b8c9-d0e1-2345-f123-456789012345",
44
+ "firstName": "Peter",
45
+ "lastName": "Hoffmann",
46
+ "email": "p.hoffmann@example.com",
47
+ "phone": "+49 173 11223344"
48
+ },
49
+ "regulation": "Standard DPU19 group stage regulations apply"
50
+ },
51
+ "teams": [
52
+ {
53
+ "id": "a7b8c9d0-e1f2-3456-1234-567890123456",
54
+ "name": "Stuttgart Eagles U19 1",
55
+ "withoutCompetition": false,
56
+ "secondRightToPlay": false,
57
+ "exemptionRequest": null,
58
+ "players": [
59
+ {
60
+ "id": "b8c9d0e1-f2a3-4567-2345-678901234567",
61
+ "firstName": "Luca",
62
+ "lastName": "Mueller",
63
+ "email": "luca.mueller@example.com",
64
+ "phone": "+49 160 11111111",
65
+ "gender": "m",
66
+ "dateOfBirth": "2007-04-12",
67
+ "uciCode": "10022345678",
68
+ "nationality": "GER",
69
+ "clubId": "11111111-1111-1111-1111-111111111111"
70
+ },
71
+ {
72
+ "id": "c9d0e1f2-a3b4-5678-3456-789012345678",
73
+ "firstName": "Maximilian",
74
+ "lastName": "Braun",
75
+ "email": "max.braun@example.com",
76
+ "phone": "+49 160 11111112",
77
+ "gender": "m",
78
+ "dateOfBirth": "2007-09-25",
79
+ "uciCode": "10022345679",
80
+ "nationality": "GER",
81
+ "clubId": "11111111-1111-1111-1111-111111111111"
82
+ }
83
+ ],
84
+ "clubId": "11111111-1111-1111-1111-111111111111",
85
+ "sgClubId": null
86
+ },
87
+ {
88
+ "id": "d0e1f2a3-b4c5-6789-4567-890123456789",
89
+ "name": "Muenchen Riders U19 1",
90
+ "withoutCompetition": false,
91
+ "secondRightToPlay": false,
92
+ "exemptionRequest": null,
93
+ "players": [
94
+ {
95
+ "id": "e1f2a3b4-c5d6-7890-5678-901234567890",
96
+ "firstName": "Jan",
97
+ "lastName": "Weber",
98
+ "email": "jan.weber@example.com",
99
+ "phone": "+49 160 22222221",
100
+ "gender": "m",
101
+ "dateOfBirth": "2008-01-17",
102
+ "uciCode": "10022345680",
103
+ "nationality": "GER",
104
+ "clubId": "22222222-2222-2222-2222-222222222222"
105
+ },
106
+ {
107
+ "id": "f2a3b4c5-d6e7-8901-6789-012345678901",
108
+ "firstName": "Philip",
109
+ "lastName": "Schwarz",
110
+ "email": "philip.schwarz@example.com",
111
+ "phone": "+49 160 22222222",
112
+ "gender": "m",
113
+ "dateOfBirth": "2007-06-30",
114
+ "uciCode": "10022345681",
115
+ "nationality": "GER",
116
+ "clubId": "22222222-2222-2222-2222-222222222222"
117
+ }
118
+ ],
119
+ "clubId": "22222222-2222-2222-2222-222222222222",
120
+ "sgClubId": null
121
+ },
122
+ {
123
+ "id": "a3b4c5d6-e7f8-9012-7890-123456789012",
124
+ "name": "Frankfurt Thunder U19 1",
125
+ "withoutCompetition": false,
126
+ "secondRightToPlay": false,
127
+ "exemptionRequest": null,
128
+ "players": [
129
+ {
130
+ "id": "b4c5d6e7-f8a9-0123-8901-234567890123",
131
+ "firstName": "Tom",
132
+ "lastName": "Lange",
133
+ "email": "tom.lange@example.com",
134
+ "phone": "+49 160 33333331",
135
+ "gender": "m",
136
+ "dateOfBirth": "2008-03-05",
137
+ "uciCode": "10022345682",
138
+ "nationality": "GER",
139
+ "clubId": "33333333-3333-3333-3333-333333333333"
140
+ },
141
+ {
142
+ "id": "c5d6e7f8-a9b0-1234-9012-345678901234",
143
+ "firstName": "Erik",
144
+ "lastName": "Richter",
145
+ "email": "erik.richter@example.com",
146
+ "phone": "+49 160 33333332",
147
+ "gender": "m",
148
+ "dateOfBirth": "2007-11-18",
149
+ "uciCode": "10022345683",
150
+ "nationality": "GER",
151
+ "clubId": "33333333-3333-3333-3333-333333333333"
152
+ }
153
+ ],
154
+ "clubId": "33333333-3333-3333-3333-333333333333",
155
+ "sgClubId": null
156
+ },
157
+ {
158
+ "id": "d6e7f8a9-b0c1-2345-0123-456789012345",
159
+ "name": "Koeln Flames U19 1",
160
+ "withoutCompetition": false,
161
+ "secondRightToPlay": false,
162
+ "exemptionRequest": null,
163
+ "players": [
164
+ {
165
+ "id": "e7f8a9b0-c1d2-3456-1234-567890123456",
166
+ "firstName": "Nico",
167
+ "lastName": "Krause",
168
+ "email": "nico.krause@example.com",
169
+ "phone": "+49 160 44444441",
170
+ "gender": "m",
171
+ "dateOfBirth": "2007-07-22",
172
+ "uciCode": "10022345684",
173
+ "nationality": "GER",
174
+ "clubId": "44444444-4444-4444-4444-444444444444"
175
+ },
176
+ {
177
+ "id": "f8a9b0c1-d2e3-4567-2345-678901234567",
178
+ "firstName": "Daniel",
179
+ "lastName": "Vogel",
180
+ "email": "daniel.vogel@example.com",
181
+ "phone": "+49 160 44444442",
182
+ "gender": "m",
183
+ "dateOfBirth": "2008-02-14",
184
+ "uciCode": "10022345685",
185
+ "nationality": "GER",
186
+ "clubId": "44444444-4444-4444-4444-444444444444"
187
+ }
188
+ ],
189
+ "clubId": "44444444-4444-4444-4444-444444444444",
190
+ "sgClubId": null
191
+ },
192
+ {
193
+ "id": "a9b0c1d2-e3f4-5678-3456-789012345678",
194
+ "name": "Nuernberg Stars U19 1",
195
+ "withoutCompetition": false,
196
+ "secondRightToPlay": false,
197
+ "exemptionRequest": null,
198
+ "players": [
199
+ {
200
+ "id": "b0c1d2e3-f4a5-6789-4567-890123456789",
201
+ "firstName": "Fabian",
202
+ "lastName": "Zimmermann",
203
+ "email": "fabian.zimmermann@example.com",
204
+ "phone": "+49 160 55555551",
205
+ "gender": "m",
206
+ "dateOfBirth": "2007-12-03",
207
+ "uciCode": "10022345686",
208
+ "nationality": "GER",
209
+ "clubId": "55555555-5555-5555-5555-555555555555"
210
+ },
211
+ {
212
+ "id": "c1d2e3f4-a5b6-7890-5678-901234567890",
213
+ "firstName": "Marcel",
214
+ "lastName": "Peters",
215
+ "email": "marcel.peters@example.com",
216
+ "phone": "+49 160 55555552",
217
+ "gender": "m",
218
+ "dateOfBirth": "2008-05-09",
219
+ "uciCode": "10022345687",
220
+ "nationality": "GER",
221
+ "clubId": "55555555-5555-5555-5555-555555555555"
222
+ }
223
+ ],
224
+ "clubId": "55555555-5555-5555-5555-555555555555",
225
+ "sgClubId": null
226
+ },
227
+ {
228
+ "id": "d2e3f4a5-b6c7-8901-6789-012345678901",
229
+ "name": "SG Dortmund/Essen U19 1",
230
+ "withoutCompetition": false,
231
+ "secondRightToPlay": false,
232
+ "exemptionRequest": null,
233
+ "players": [
234
+ {
235
+ "id": "e3f4a5b6-c7d8-9012-7890-123456789012",
236
+ "firstName": "Kai",
237
+ "lastName": "Hartmann",
238
+ "email": "kai.hartmann@example.com",
239
+ "phone": "+49 160 66666661",
240
+ "gender": "m",
241
+ "dateOfBirth": "2007-08-28",
242
+ "uciCode": "10022345688",
243
+ "nationality": "GER",
244
+ "clubId": "66666666-6666-6666-6666-666666666666"
245
+ },
246
+ {
247
+ "id": "f4a5b6c7-d8e9-0123-8901-234567890123",
248
+ "firstName": "Tobias",
249
+ "lastName": "Koenig",
250
+ "email": "tobias.koenig@example.com",
251
+ "phone": "+49 160 77777771",
252
+ "gender": "m",
253
+ "dateOfBirth": "2008-04-16",
254
+ "uciCode": "10022345689",
255
+ "nationality": "GER",
256
+ "clubId": "77777777-7777-7777-7777-777777777777"
257
+ }
258
+ ],
259
+ "clubId": "66666666-6666-6666-6666-666666666666",
260
+ "sgClubId": "77777777-7777-7777-7777-777777777777"
261
+ }
262
+ ],
263
+ "clubs": [
264
+ {
265
+ "id": "11111111-1111-1111-1111-111111111111",
266
+ "name": "RSV Stuttgart Eagles",
267
+ "shortName": "STE",
268
+ "preferredDates": [
269
+ {
270
+ "preferenceDate": "2025-03-15",
271
+ "status": "PREFERRED",
272
+ "notes": null,
273
+ "gymId": null
274
+ },
275
+ {
276
+ "preferenceDate": "2025-04-26",
277
+ "status": "AVAILABLE",
278
+ "notes": null,
279
+ "gymId": null
280
+ }
281
+ ]
282
+ },
283
+ {
284
+ "id": "22222222-2222-2222-2222-222222222222",
285
+ "name": "RC Muenchen Riders",
286
+ "shortName": "MUR",
287
+ "preferredDates": [
288
+ {
289
+ "preferenceDate": "2025-04-26",
290
+ "status": "PREFERRED",
291
+ "notes": null,
292
+ "gymId": null
293
+ },
294
+ {
295
+ "preferenceDate": "2025-05-17",
296
+ "status": "PREFERRED",
297
+ "notes": null,
298
+ "gymId": null
299
+ }
300
+ ]
301
+ },
302
+ {
303
+ "id": "33333333-3333-3333-3333-333333333333",
304
+ "name": "RV Frankfurt Thunder",
305
+ "shortName": "FRT",
306
+ "preferredDates": [
307
+ {
308
+ "preferenceDate": "2025-03-15",
309
+ "status": "AVAILABLE",
310
+ "notes": null,
311
+ "gymId": null
312
+ },
313
+ {
314
+ "preferenceDate": "2025-05-17",
315
+ "status": "PREFERRED",
316
+ "notes": null,
317
+ "gymId": null
318
+ }
319
+ ]
320
+ },
321
+ {
322
+ "id": "44444444-4444-4444-4444-444444444444",
323
+ "name": "RSC Koeln Flames",
324
+ "shortName": "KOF",
325
+ "preferredDates": [
326
+ {
327
+ "preferenceDate": "2025-04-26",
328
+ "status": "PREFERRED",
329
+ "notes": null,
330
+ "gymId": null
331
+ }
332
+ ]
333
+ },
334
+ {
335
+ "id": "55555555-5555-5555-5555-555555555555",
336
+ "name": "RV Nuernberg Stars",
337
+ "shortName": "NBS",
338
+ "preferredDates": [
339
+ {
340
+ "preferenceDate": "2025-03-15",
341
+ "status": "PREFERRED",
342
+ "notes": null,
343
+ "gymId": null
344
+ },
345
+ {
346
+ "preferenceDate": "2025-06-07",
347
+ "status": "AVAILABLE",
348
+ "notes": null,
349
+ "gymId": null
350
+ }
351
+ ]
352
+ },
353
+ {
354
+ "id": "66666666-6666-6666-6666-666666666666",
355
+ "name": "RSC Dortmund Velocity",
356
+ "shortName": "DOV",
357
+ "preferredDates": [
358
+ {
359
+ "preferenceDate": "2025-05-17",
360
+ "status": "PREFERRED",
361
+ "notes": null,
362
+ "gymId": null
363
+ }
364
+ ]
365
+ },
366
+ {
367
+ "id": "77777777-7777-7777-7777-777777777777",
368
+ "name": "RV Essen United",
369
+ "shortName": "ESU",
370
+ "preferredDates": [
371
+ {
372
+ "preferenceDate": "2025-04-26",
373
+ "status": "AVAILABLE",
374
+ "notes": null,
375
+ "gymId": null
376
+ }
377
+ ]
378
+ }
379
+ ],
380
+ "gyms": [
381
+ {
382
+ "id": "11111111-1111-1111-1111-111111111111",
383
+ "name": "Sporthalle Stuttgart-Mitte",
384
+ "availableFields": "2 courts available",
385
+ "address": {
386
+ "street": "Sportplatzweg 10",
387
+ "zip": "70173",
388
+ "city": "Stuttgart",
389
+ "country": "DE"
390
+ },
391
+ "clubId": "11111111-1111-1111-1111-111111111111"
392
+ },
393
+ {
394
+ "id": "22222222-2222-2222-2222-222222222222",
395
+ "name": "Olympia-Sporthalle Muenchen",
396
+ "availableFields": "1 court",
397
+ "address": {
398
+ "street": "Olympiapark 5",
399
+ "zip": "80809",
400
+ "city": "Muenchen",
401
+ "country": "DE"
402
+ },
403
+ "clubId": "22222222-2222-2222-2222-222222222222"
404
+ },
405
+ {
406
+ "id": "33333333-3333-3333-3333-333333333333",
407
+ "name": "Mehrzweckhalle Frankfurt-Ost",
408
+ "availableFields": "2 courts available",
409
+ "address": {
410
+ "street": "Hanauer Landstrasse 120",
411
+ "zip": "60314",
412
+ "city": "Frankfurt am Main",
413
+ "country": "DE"
414
+ },
415
+ "clubId": "33333333-3333-3333-3333-333333333333"
416
+ },
417
+ {
418
+ "id": "44444444-4444-4444-4444-444444444444",
419
+ "name": "Koelner Sporthalle Sued",
420
+ "availableFields": "1 court",
421
+ "address": {
422
+ "street": "Suedstadion 8",
423
+ "zip": "50678",
424
+ "city": "Koeln",
425
+ "country": "DE"
426
+ },
427
+ "clubId": "44444444-4444-4444-4444-444444444444"
428
+ }
429
+ ],
430
+ "statistics": {
431
+ "totalTeams": 6,
432
+ "totalPlayers": 12,
433
+ "totalClubs": 7,
434
+ "totalGyms": 4
435
+ }
436
+ }