@globalscoutme/api-client 1.0.9 → 1.0.11

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.
package/types.gen.ts CHANGED
@@ -150,6 +150,228 @@ export type UpdatePlayerDto = {
150
150
  bio?: string;
151
151
  };
152
152
 
153
+ export type PlayerSearchRequestDto = {
154
+ /**
155
+ * Search by first or last name
156
+ */
157
+ search?: string;
158
+ /**
159
+ * Page number (1-based)
160
+ */
161
+ page?: number;
162
+ /**
163
+ * Items per page
164
+ */
165
+ pageSize?: number;
166
+ /**
167
+ * Sort order
168
+ */
169
+ sortBy?:
170
+ | 'relevance'
171
+ | 'age_asc'
172
+ | 'age_desc'
173
+ | 'gsi_score_asc'
174
+ | 'gsi_score_desc'
175
+ | 'nationality_asc'
176
+ | 'nationality_desc';
177
+ /**
178
+ * Minimum age (inclusive)
179
+ */
180
+ ageMin?: number;
181
+ /**
182
+ * Maximum age (inclusive)
183
+ */
184
+ ageMax?: number;
185
+ /**
186
+ * Nationality codes (ISO 2-letter)
187
+ */
188
+ nationalities?: Array<string>;
189
+ /**
190
+ * Position codes (multi-select)
191
+ */
192
+ positions?: Array<string>;
193
+ /**
194
+ * Base foot
195
+ */
196
+ baseFoot?: 'left' | 'right';
197
+ /**
198
+ * Preferred formation names (multi-select)
199
+ */
200
+ preferredFormations?: Array<string>;
201
+ /**
202
+ * Height operator — must be paired with heightCm
203
+ */
204
+ heightOperator?: 'gt' | 'lt' | 'gte' | 'lte';
205
+ /**
206
+ * Height value in cm — must be paired with heightOperator
207
+ */
208
+ heightCm?: number;
209
+ /**
210
+ * Only free agents
211
+ */
212
+ isFreeAgent?: boolean;
213
+ /**
214
+ * Only EU visa holders
215
+ */
216
+ isEuVisaHolder?: boolean;
217
+ /**
218
+ * Only players with at least one video
219
+ */
220
+ hasVideo?: boolean;
221
+ /**
222
+ * Only players on the caller watchlist
223
+ */
224
+ onlyWatchlist?: boolean;
225
+ };
226
+
227
+ export type PlayerSearchItemDto = {
228
+ id: string;
229
+ firstName?: string | null;
230
+ lastName?: string | null;
231
+ avatarUrl?: string | null;
232
+ /**
233
+ * Age computed from date_of_birth
234
+ */
235
+ age?: number | null;
236
+ /**
237
+ * ISO 2-letter nationality code
238
+ */
239
+ nationality?: string | null;
240
+ isFreeAgent: boolean;
241
+ isEuVisaHolder: boolean;
242
+ /**
243
+ * Height in cm
244
+ */
245
+ heightCm?: number | null;
246
+ /**
247
+ * Preferred foot code
248
+ */
249
+ baseFoot?: string | null;
250
+ /**
251
+ * Primary position code
252
+ */
253
+ primaryPosition?: string | null;
254
+ /**
255
+ * Additional position codes
256
+ */
257
+ additionalPositions: Array<string>;
258
+ /**
259
+ * Preferred formation name
260
+ */
261
+ preferredFormation?: string | null;
262
+ /**
263
+ * Has at least one non-deleted video
264
+ */
265
+ hasVideo: boolean;
266
+ };
267
+
268
+ export type PlayerSearchResultDto = {
269
+ items: Array<PlayerSearchItemDto>;
270
+ /**
271
+ * Total matching records
272
+ */
273
+ total: number;
274
+ page: number;
275
+ pageSize: number;
276
+ };
277
+
278
+ export type PlayerClubDto = {
279
+ clubName: string;
280
+ /**
281
+ * Year joined
282
+ */
283
+ joinedYear?: number | null;
284
+ /**
285
+ * Year left
286
+ */
287
+ leftYear?: number | null;
288
+ };
289
+
290
+ export type PlayerAchievementDto = {
291
+ id: string;
292
+ title: string;
293
+ /**
294
+ * Year of achievement
295
+ */
296
+ year?: number | null;
297
+ /**
298
+ * Recurrence label (e.g. "Annual")
299
+ */
300
+ recurrence?: string | null;
301
+ };
302
+
303
+ export type PlayerVideoDto = {
304
+ id: string;
305
+ title: string;
306
+ videoUrl: string;
307
+ thumbnailUrl?: string | null;
308
+ /**
309
+ * Duration in seconds
310
+ */
311
+ durationSeconds?: number | null;
312
+ /**
313
+ * Video type code
314
+ */
315
+ videoType?: string | null;
316
+ };
317
+
318
+ export type WatchingOrgDto = {
319
+ name: string;
320
+ logoUrl?: string | null;
321
+ };
322
+
323
+ export type PlayerByIdDto = {
324
+ id: string;
325
+ firstName?: string | null;
326
+ lastName?: string | null;
327
+ avatarUrl?: string | null;
328
+ age?: number | null;
329
+ /**
330
+ * Date of birth
331
+ */
332
+ dateOfBirth?: string | null;
333
+ bio?: string | null;
334
+ /**
335
+ * ISO 2-letter nationality code
336
+ */
337
+ nationality?: string | null;
338
+ isFreeAgent: boolean;
339
+ isEuVisaHolder: boolean;
340
+ visaExpirationDate?: string | null;
341
+ /**
342
+ * Marital status label
343
+ */
344
+ maritalStatus?: string | null;
345
+ heightCm?: number | null;
346
+ weightKg?: number | null;
347
+ baseFoot?: string | null;
348
+ /**
349
+ * Primary position code
350
+ */
351
+ primaryPosition?: string | null;
352
+ additionalPositions: Array<string>;
353
+ preferredFormation?: string | null;
354
+ /**
355
+ * Spoken language names
356
+ */
357
+ languages: Array<string>;
358
+ /**
359
+ * Current club name
360
+ */
361
+ currentClub?: string | null;
362
+ previousClubs: Array<PlayerClubDto>;
363
+ achievements: Array<PlayerAchievementDto>;
364
+ videos: Array<PlayerVideoDto>;
365
+ /**
366
+ * Clubs watching this player
367
+ */
368
+ clubsWatching: Array<WatchingOrgDto>;
369
+ /**
370
+ * Scout agencies watching this player
371
+ */
372
+ agentsWatching: Array<WatchingOrgDto>;
373
+ };
374
+
153
375
  export type PreviousClubDto = {
154
376
  /**
155
377
  * Club name
@@ -520,6 +742,115 @@ export type IndexItemDto = {
520
742
  displayOrder: number | null;
521
743
  };
522
744
 
745
+ export type ConversationParticipantDto = {
746
+ /**
747
+ * user_data id
748
+ */
749
+ id: string;
750
+ firstName?: string | null;
751
+ lastName?: string | null;
752
+ avatarUrl?: string | null;
753
+ /**
754
+ * Age computed from date_of_birth
755
+ */
756
+ age?: number | null;
757
+ /**
758
+ * Primary position code
759
+ */
760
+ primaryPosition?: string | null;
761
+ };
762
+
763
+ export type ConversationItemDto = {
764
+ /**
765
+ * Conversation UUID
766
+ */
767
+ id: string;
768
+ participant: ConversationParticipantDto;
769
+ /**
770
+ * Last message text
771
+ */
772
+ lastMessage?: string | null;
773
+ /**
774
+ * Unread message count for the current user
775
+ */
776
+ unreadCount: number;
777
+ /**
778
+ * Conversation status code
779
+ */
780
+ status: string;
781
+ createdAt: string;
782
+ updatedAt: string;
783
+ };
784
+
785
+ export type ConversationListResultDto = {
786
+ items: Array<ConversationItemDto>;
787
+ /**
788
+ * Total matching records
789
+ */
790
+ total: number;
791
+ page: number;
792
+ pageSize: number;
793
+ };
794
+
795
+ export type CreateConversationDto = {
796
+ /**
797
+ * Player user_data id to send offer to
798
+ */
799
+ playerId: string;
800
+ /**
801
+ * Opening message text
802
+ */
803
+ initialMessage?: string;
804
+ };
805
+
806
+ export type ConversationDetailDto = {
807
+ id: string;
808
+ playerId: string;
809
+ scouterId: string;
810
+ lastMessage?: string | null;
811
+ unreadCount: number;
812
+ status: string;
813
+ createdAt: string;
814
+ updatedAt: string;
815
+ };
816
+
817
+ export type MessageSenderDto = {
818
+ id: string;
819
+ firstName?: string | null;
820
+ lastName?: string | null;
821
+ avatarUrl?: string | null;
822
+ };
823
+
824
+ export type MessageItemDto = {
825
+ id: string;
826
+ conversationId: string;
827
+ sender: MessageSenderDto;
828
+ /**
829
+ * true when this message belongs to the caller
830
+ */
831
+ isOwn: boolean;
832
+ body: string;
833
+ sentAt: string;
834
+ readAt?: string | null;
835
+ };
836
+
837
+ export type MessageListResultDto = {
838
+ items: Array<MessageItemDto>;
839
+ /**
840
+ * Total matching records
841
+ */
842
+ total: number;
843
+ page: number;
844
+ pageSize: number;
845
+ };
846
+
847
+ export type SendMessageDto = {
848
+ /**
849
+ * Message body text
850
+ */
851
+ body: string;
852
+ };
853
+
523
854
  export type RegisterClubDto = {
524
855
  /**
525
856
  * Club name
@@ -860,6 +1191,58 @@ export type GetPlayersMeDashboardResponses = {
860
1191
  export type GetPlayersMeDashboardResponse =
861
1192
  GetPlayersMeDashboardResponses[keyof GetPlayersMeDashboardResponses];
862
1193
 
1194
+ export type PostPlayersSearchData = {
1195
+ body: PlayerSearchRequestDto;
1196
+ path?: never;
1197
+ query?: never;
1198
+ url: '/players/search';
1199
+ };
1200
+
1201
+ export type PostPlayersSearchErrors = {
1202
+ /**
1203
+ * Invalid filter combination
1204
+ */
1205
+ 400: unknown;
1206
+ /**
1207
+ * Unauthorized
1208
+ */
1209
+ 401: unknown;
1210
+ };
1211
+
1212
+ export type PostPlayersSearchResponses = {
1213
+ 200: PlayerSearchResultDto;
1214
+ };
1215
+
1216
+ export type PostPlayersSearchResponse =
1217
+ PostPlayersSearchResponses[keyof PostPlayersSearchResponses];
1218
+
1219
+ export type GetPlayersByIdData = {
1220
+ body?: never;
1221
+ path: {
1222
+ id: string;
1223
+ };
1224
+ query?: never;
1225
+ url: '/players/{id}';
1226
+ };
1227
+
1228
+ export type GetPlayersByIdErrors = {
1229
+ /**
1230
+ * Unauthorized
1231
+ */
1232
+ 401: unknown;
1233
+ /**
1234
+ * Player not found
1235
+ */
1236
+ 404: unknown;
1237
+ };
1238
+
1239
+ export type GetPlayersByIdResponses = {
1240
+ 200: PlayerByIdDto;
1241
+ };
1242
+
1243
+ export type GetPlayersByIdResponse =
1244
+ GetPlayersByIdResponses[keyof GetPlayersByIdResponses];
1245
+
863
1246
  export type GetProfileMeData = {
864
1247
  body?: never;
865
1248
  path?: never;
@@ -1077,6 +1460,145 @@ export type GetIndexByTableNameResponses = {
1077
1460
  export type GetIndexByTableNameResponse =
1078
1461
  GetIndexByTableNameResponses[keyof GetIndexByTableNameResponses];
1079
1462
 
1463
+ export type GetOffersConversationsData = {
1464
+ body?: never;
1465
+ path?: never;
1466
+ query?: {
1467
+ filter?: 'all' | 'unread' | 'read';
1468
+ page?: number;
1469
+ pageSize?: number;
1470
+ };
1471
+ url: '/offers/conversations';
1472
+ };
1473
+
1474
+ export type GetOffersConversationsErrors = {
1475
+ /**
1476
+ * Unauthorized
1477
+ */
1478
+ 401: unknown;
1479
+ };
1480
+
1481
+ export type GetOffersConversationsResponses = {
1482
+ 200: ConversationListResultDto;
1483
+ };
1484
+
1485
+ export type GetOffersConversationsResponse =
1486
+ GetOffersConversationsResponses[keyof GetOffersConversationsResponses];
1487
+
1488
+ export type PostOffersConversationsData = {
1489
+ body: CreateConversationDto;
1490
+ path?: never;
1491
+ query?: never;
1492
+ url: '/offers/conversations';
1493
+ };
1494
+
1495
+ export type PostOffersConversationsErrors = {
1496
+ /**
1497
+ * Unauthorized
1498
+ */
1499
+ 401: unknown;
1500
+ };
1501
+
1502
+ export type PostOffersConversationsResponses = {
1503
+ 201: ConversationDetailDto;
1504
+ };
1505
+
1506
+ export type PostOffersConversationsResponse =
1507
+ PostOffersConversationsResponses[keyof PostOffersConversationsResponses];
1508
+
1509
+ export type GetOffersConversationsByIdMessagesData = {
1510
+ body?: never;
1511
+ path: {
1512
+ id: string;
1513
+ };
1514
+ query?: {
1515
+ page?: number;
1516
+ pageSize?: number;
1517
+ };
1518
+ url: '/offers/conversations/{id}/messages';
1519
+ };
1520
+
1521
+ export type GetOffersConversationsByIdMessagesErrors = {
1522
+ /**
1523
+ * Unauthorized
1524
+ */
1525
+ 401: unknown;
1526
+ /**
1527
+ * Not a participant
1528
+ */
1529
+ 403: unknown;
1530
+ /**
1531
+ * Conversation not found
1532
+ */
1533
+ 404: unknown;
1534
+ };
1535
+
1536
+ export type GetOffersConversationsByIdMessagesResponses = {
1537
+ 200: MessageListResultDto;
1538
+ };
1539
+
1540
+ export type GetOffersConversationsByIdMessagesResponse =
1541
+ GetOffersConversationsByIdMessagesResponses[keyof GetOffersConversationsByIdMessagesResponses];
1542
+
1543
+ export type PostOffersConversationsByIdMessagesData = {
1544
+ body: SendMessageDto;
1545
+ path: {
1546
+ id: string;
1547
+ };
1548
+ query?: never;
1549
+ url: '/offers/conversations/{id}/messages';
1550
+ };
1551
+
1552
+ export type PostOffersConversationsByIdMessagesErrors = {
1553
+ /**
1554
+ * Unauthorized
1555
+ */
1556
+ 401: unknown;
1557
+ /**
1558
+ * Not a participant
1559
+ */
1560
+ 403: unknown;
1561
+ /**
1562
+ * Conversation not found
1563
+ */
1564
+ 404: unknown;
1565
+ };
1566
+
1567
+ export type PostOffersConversationsByIdMessagesResponses = {
1568
+ 201: MessageItemDto;
1569
+ };
1570
+
1571
+ export type PostOffersConversationsByIdMessagesResponse =
1572
+ PostOffersConversationsByIdMessagesResponses[keyof PostOffersConversationsByIdMessagesResponses];
1573
+
1574
+ export type PatchOffersConversationsByIdReadData = {
1575
+ body?: never;
1576
+ path: {
1577
+ id: string;
1578
+ };
1579
+ query?: never;
1580
+ url: '/offers/conversations/{id}/read';
1581
+ };
1582
+
1583
+ export type PatchOffersConversationsByIdReadErrors = {
1584
+ /**
1585
+ * Unauthorized
1586
+ */
1587
+ 401: unknown;
1588
+ /**
1589
+ * Not a participant
1590
+ */
1591
+ 403: unknown;
1592
+ /**
1593
+ * Conversation not found
1594
+ */
1595
+ 404: unknown;
1596
+ };
1597
+
1598
+ export type PatchOffersConversationsByIdReadResponses = {
1599
+ 200: unknown;
1600
+ };
1601
+
1080
1602
  export type PostOrganizationsRegisterClubData = {
1081
1603
  body: RegisterClubDto;
1082
1604
  path?: never;