@globalscoutme/api-client 1.1.1 → 1.1.3

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
@@ -322,6 +322,19 @@ export type PlayerSearchResultDto = {
322
322
  pageSize: number;
323
323
  };
324
324
 
325
+ export type PlayerReportViewDto = {
326
+ technicalPillar: string;
327
+ physicalPillar: string;
328
+ tacticalPillar: string;
329
+ mentalPillar: string;
330
+ };
331
+
332
+ export type PlayerReportResponseDto = {
333
+ reportReferenceId: string;
334
+ generatedAt?: string | null;
335
+ scouterView: PlayerReportViewDto;
336
+ };
337
+
325
338
  export type PlayerClubDto = {
326
339
  clubName: string;
327
340
  /**
@@ -431,6 +444,289 @@ export type PlayerByIdDto = {
431
444
  phone?: string | null;
432
445
  };
433
446
 
447
+ export type BillingProviderProductDto = {
448
+ provider: string;
449
+ environment: string;
450
+ surface: string;
451
+ providerProductType: string;
452
+ productId?: string | null;
453
+ priceId?: string | null;
454
+ basePlanId?: string | null;
455
+ offerId?: string | null;
456
+ lookupKey?: string | null;
457
+ displayName?: string | null;
458
+ };
459
+
460
+ export type BillingPlanDto = {
461
+ id: string;
462
+ code: string;
463
+ name: string;
464
+ billingInterval: string;
465
+ price: number;
466
+ currency: string;
467
+ trialDays?: number | null;
468
+ providerProducts: Array<BillingProviderProductDto>;
469
+ };
470
+
471
+ export type BillingPlansResponseDto = {
472
+ plans: Array<BillingPlanDto>;
473
+ };
474
+
475
+ export type BillingProductDto = {
476
+ id: string;
477
+ code: string;
478
+ name: string;
479
+ productType: string;
480
+ fulfillmentType: string;
481
+ purchasePolicy: string;
482
+ price: number;
483
+ currency: string;
484
+ providerProducts: Array<BillingProviderProductDto>;
485
+ };
486
+
487
+ export type BillingProductsResponseDto = {
488
+ products: Array<BillingProductDto>;
489
+ };
490
+
491
+ export type BillingManageActionDto = {
492
+ type: {
493
+ [key: string]: unknown;
494
+ };
495
+ url?: string | null;
496
+ };
497
+
498
+ export type BillingEntitlementResponseDto = {
499
+ hasAccess: boolean;
500
+ status: string;
501
+ provider?: string | null;
502
+ plan?: BillingPlanDto | null;
503
+ currentPeriodEnd?: string | null;
504
+ gracePeriodUntil?: string | null;
505
+ blockingReason?: string | null;
506
+ manageAction: BillingManageActionDto;
507
+ };
508
+
509
+ export type RedeemAccessCodeDto = {
510
+ code: string;
511
+ };
512
+
513
+ export type ReportPurchaseDto = {
514
+ id: string;
515
+ paymentStatus: string;
516
+ fulfillmentStatus: string;
517
+ failureReason?: string | null;
518
+ reportReferenceId?: string | null;
519
+ generationStartedAt?: string | null;
520
+ generationFailedAt?: string | null;
521
+ fulfilledAt?: string | null;
522
+ createdAt?: string | null;
523
+ updatedAt?: string | null;
524
+ };
525
+
526
+ export type ReportPrerequisiteDto = {
527
+ code: string;
528
+ label: string;
529
+ satisfied: boolean;
530
+ blocking: boolean;
531
+ };
532
+
533
+ export type ReportPurchaseStatusResponseDto = {
534
+ purchase?: ReportPurchaseDto | null;
535
+ prerequisites: Array<ReportPrerequisiteDto>;
536
+ };
537
+
538
+ export type AiReportViewDto = {
539
+ technicalPillar: string;
540
+ physicalPillar: string;
541
+ tacticalPillar: string;
542
+ mentalPillar: string;
543
+ };
544
+
545
+ export type AiReportClipTargetDto = {
546
+ timestampS: number;
547
+ tapXPct: number;
548
+ tapYPct: number;
549
+ };
550
+
551
+ export type AiReportClipDto = {
552
+ clipIndex: number;
553
+ storagePath?: string | null;
554
+ target: AiReportClipTargetDto;
555
+ };
556
+
557
+ export type AiReportMetaDto = {
558
+ schemaVersion?: string | null;
559
+ promptVersion?: string | null;
560
+ llmProvider?: string | null;
561
+ llmModel?: string | null;
562
+ processingTimeMs?: number | null;
563
+ clips: Array<AiReportClipDto>;
564
+ };
565
+
566
+ export type AiReportResultResponseDto = {
567
+ purchaseId: string;
568
+ reportReferenceId: string;
569
+ status: string;
570
+ generatedAt?: string | null;
571
+ playerView: AiReportViewDto;
572
+ scouterView: AiReportViewDto;
573
+ meta: AiReportMetaDto;
574
+ };
575
+
576
+ export type ReportPlayerCandidateTargetDto = {
577
+ timestampS: number;
578
+ tapXPct: number;
579
+ tapYPct: number;
580
+ };
581
+
582
+ export type StartReportGenerationClipDto = {
583
+ videoId: string;
584
+ target: ReportPlayerCandidateTargetDto;
585
+ };
586
+
587
+ export type StartReportGenerationRequestDto = {
588
+ clips: Array<StartReportGenerationClipDto>;
589
+ };
590
+
591
+ export type ReportGenerationStartResponseDto = {
592
+ purchaseId: string;
593
+ fulfillmentStatus: string;
594
+ prerequisites: Array<ReportPrerequisiteDto>;
595
+ };
596
+
597
+ export type ReportPlayerCandidatesRequestDto = {
598
+ videoIds?: Array<string>;
599
+ jerseyNumberHint?: string;
600
+ };
601
+
602
+ export type ReportPlayerCandidateBboxDto = {
603
+ xPct: number;
604
+ yPct: number;
605
+ widthPct: number;
606
+ heightPct: number;
607
+ };
608
+
609
+ export type ReportPlayerCandidateDto = {
610
+ candidateId: string;
611
+ rank: number;
612
+ confidence: number;
613
+ target: ReportPlayerCandidateTargetDto;
614
+ bbox: ReportPlayerCandidateBboxDto;
615
+ frameWidthPx?: number | null;
616
+ frameHeightPx?: number | null;
617
+ framePreviewDataUrl?: string | null;
618
+ playerCropDataUrl?: string | null;
619
+ label: string;
620
+ reasonCodes: Array<string>;
621
+ };
622
+
623
+ export type ReportVideoCandidatesDto = {
624
+ videoId: string;
625
+ title: string;
626
+ thumbnailUrl?: string | null;
627
+ fallbackRequired: boolean;
628
+ fallbackReason: string;
629
+ candidates: Array<ReportPlayerCandidateDto>;
630
+ };
631
+
632
+ export type ReportPlayerCandidatesResponseDto = {
633
+ videos: Array<ReportVideoCandidatesDto>;
634
+ };
635
+
636
+ export type ProviderCheckoutRequestDto = {
637
+ productCode?: string;
638
+ returnUrl?: string;
639
+ };
640
+
641
+ export type StorePurchaseSyncRequestDto = {
642
+ productId: string;
643
+ basePlanId?: string;
644
+ offerId?: string;
645
+ transactionId?: string;
646
+ purchaseToken?: string;
647
+ signedTransactionInfo?: string;
648
+ packageName?: string;
649
+ };
650
+
651
+ export type NotificationPreferencesDto = {
652
+ pushEnabled: boolean;
653
+ offersEnabled: boolean;
654
+ messagesEnabled: boolean;
655
+ };
656
+
657
+ export type UpdateNotificationPreferencesDto = {
658
+ pushEnabled?: boolean;
659
+ offersEnabled?: boolean;
660
+ messagesEnabled?: boolean;
661
+ };
662
+
663
+ export type RegisterPushDeviceDto = {
664
+ fcmToken: string;
665
+ platform: 'ios' | 'android';
666
+ installId: string;
667
+ appVersion?: string;
668
+ buildNumber?: string;
669
+ locale?: string;
670
+ timezone?: string;
671
+ };
672
+
673
+ export type PushDeviceRegistrationResultDto = {
674
+ pushEnabled: boolean;
675
+ offersEnabled: boolean;
676
+ messagesEnabled: boolean;
677
+ id: string;
678
+ };
679
+
680
+ export type DeactivatePushDeviceDto = {
681
+ fcmToken: string;
682
+ };
683
+
684
+ export type OkDto = {
685
+ ok: boolean;
686
+ };
687
+
688
+ export type CreateUploadUrlDto = {
689
+ /**
690
+ * Target storage bucket
691
+ */
692
+ bucket: 'videos' | 'avatars' | 'documents';
693
+ /**
694
+ * MIME type of the file being uploaded
695
+ */
696
+ contentType: string;
697
+ /**
698
+ * Size of the file in bytes
699
+ */
700
+ sizeBytes: number;
701
+ /**
702
+ * Optional filename hint (not used for path)
703
+ */
704
+ filenameHint?: string;
705
+ };
706
+
707
+ export type UploadUrlResponseDto = {
708
+ /**
709
+ * Signed URL the client PUTs raw bytes to
710
+ */
711
+ uploadUrl: string;
712
+ /**
713
+ * Signed-upload token (opaque)
714
+ */
715
+ token: string;
716
+ /**
717
+ * Storage path (persist this as video_path / file_path)
718
+ */
719
+ path: string;
720
+ /**
721
+ * Bucket the upload targets
722
+ */
723
+ bucket: string;
724
+ /**
725
+ * URL validity window in seconds
726
+ */
727
+ expiresIn: number;
728
+ };
729
+
434
730
  export type PreviousClubDto = {
435
731
  /**
436
732
  * Club name
@@ -752,14 +1048,43 @@ export type UserAchievementResponseDto = {
752
1048
  export type BodyMeasurementResponseDto = {
753
1049
  id: string;
754
1050
  userId: string;
1051
+ measurementDate?: string | null;
1052
+ imageUrl?: string | null;
755
1053
  imagePath?: string | null;
756
- processingStatus?: string | null;
757
1054
  selfReportedHeightCm?: number | null;
758
1055
  wingspanToSkeletonRatio?: number | null;
759
1056
  legToTorsoRatio?: number | null;
760
1057
  femurToTibiaRatio?: number | null;
761
1058
  shoulderToHipRatio?: number | null;
762
1059
  qualityStatus?: string | null;
1060
+ analysisReliability?: string | null;
1061
+ metricStatus?: {
1062
+ [key: string]: unknown;
1063
+ };
1064
+ poseLandmarksContext?: {
1065
+ [key: string]: unknown;
1066
+ };
1067
+ heightCm?: number | null;
1068
+ shoulderWidthCm?: number | null;
1069
+ hipWidthCm?: number | null;
1070
+ reachSpanCm?: number | null;
1071
+ apeIndex?: number | null;
1072
+ shoulderToHip?: number | null;
1073
+ legToTorso?: number | null;
1074
+ headCircumferenceCm?: number | null;
1075
+ neckCircumferenceCm?: number | null;
1076
+ chestCircumferenceCm?: number | null;
1077
+ waistCircumferenceCm?: number | null;
1078
+ hipCircumferenceCm?: number | null;
1079
+ footLengthCm?: number | null;
1080
+ footWidthCm?: number | null;
1081
+ warnings?: Array<string>;
1082
+ isUsable?: boolean;
1083
+ needsRetake?: boolean;
1084
+ source?: {
1085
+ [key: string]: unknown;
1086
+ };
1087
+ processingStatus?: string | null;
763
1088
  createdAt?: string | null;
764
1089
  };
765
1090
 
@@ -768,10 +1093,58 @@ export type CreateBodyMeasurementDto = {
768
1093
  * Storage path of the body image
769
1094
  */
770
1095
  imagePath?: string;
1096
+ /**
1097
+ * Image URL or path
1098
+ */
1099
+ imageUrl?: string;
771
1100
  /**
772
1101
  * Self-reported height in centimetres
773
1102
  */
774
1103
  selfReportedHeightCm?: number;
1104
+ /**
1105
+ * Head circumference in centimetres
1106
+ */
1107
+ headCircumferenceCm?: number;
1108
+ /**
1109
+ * Neck circumference in centimetres
1110
+ */
1111
+ neckCircumferenceCm?: number;
1112
+ /**
1113
+ * Chest circumference in centimetres
1114
+ */
1115
+ chestCircumferenceCm?: number;
1116
+ /**
1117
+ * Waist circumference in centimetres
1118
+ */
1119
+ waistCircumferenceCm?: number;
1120
+ /**
1121
+ * Hip circumference in centimetres
1122
+ */
1123
+ hipCircumferenceCm?: number;
1124
+ /**
1125
+ * Foot length in centimetres
1126
+ */
1127
+ footLengthCm?: number;
1128
+ /**
1129
+ * Foot width in centimetres
1130
+ */
1131
+ footWidthCm?: number;
1132
+ };
1133
+
1134
+ export type CmjMeasurementResponseDto = {
1135
+ id: string;
1136
+ userId: string;
1137
+ measurementDate?: string | null;
1138
+ verticalJumpCm?: number | null;
1139
+ jumpHeightCmBest?: number | null;
1140
+ qualityTier?: string | null;
1141
+ retakeReason?: string | null;
1142
+ captureReliability?: string | null;
1143
+ confidenceLabel?: string | null;
1144
+ isUsable?: boolean;
1145
+ needsRetake?: boolean;
1146
+ source?: string;
1147
+ createdAt?: string | null;
775
1148
  };
776
1149
 
777
1150
  export type ChallengeCatalogDto = {
@@ -1053,43 +1426,6 @@ export type SendMessageDto = {
1053
1426
  body: string;
1054
1427
  };
1055
1428
 
1056
- export type NotificationPreferencesDto = {
1057
- pushEnabled: boolean;
1058
- offersEnabled: boolean;
1059
- messagesEnabled: boolean;
1060
- };
1061
-
1062
- export type UpdateNotificationPreferencesDto = {
1063
- pushEnabled?: boolean;
1064
- offersEnabled?: boolean;
1065
- messagesEnabled?: boolean;
1066
- };
1067
-
1068
- export type RegisterPushDeviceDto = {
1069
- fcmToken: string;
1070
- platform: 'ios' | 'android';
1071
- installId: string;
1072
- appVersion?: string;
1073
- buildNumber?: string;
1074
- locale?: string;
1075
- timezone?: string;
1076
- };
1077
-
1078
- export type PushDeviceRegistrationResultDto = {
1079
- pushEnabled: boolean;
1080
- offersEnabled: boolean;
1081
- messagesEnabled: boolean;
1082
- id: string;
1083
- };
1084
-
1085
- export type DeactivatePushDeviceDto = {
1086
- fcmToken: string;
1087
- };
1088
-
1089
- export type OkDto = {
1090
- ok: boolean;
1091
- };
1092
-
1093
1429
  export type RegisterClubDto = {
1094
1430
  /**
1095
1431
  * Club name
@@ -1280,70 +1616,28 @@ export type UpdateOrganizationDto = {
1280
1616
  phone?: string;
1281
1617
  };
1282
1618
 
1283
- export type CreateUploadUrlDto = {
1619
+ export type SendInvitationRequestDto = {
1620
+ email: string;
1621
+ };
1622
+
1623
+ export type InvitationResponseDto = {
1624
+ id: string;
1625
+ email: string;
1626
+ firstName?: string | null;
1627
+ lastName?: string | null;
1628
+ status: 'confirmed' | 'pending' | 'expired';
1629
+ invitedAt: string;
1630
+ expiresAt: string;
1631
+ acceptedAt?: string | null;
1632
+ };
1633
+
1634
+ export type StartKycRequestDto = {
1284
1635
  /**
1285
- * Target storage bucket
1636
+ * ISO 3166-1 alpha-2 country code (lowercase, matches index.countries)
1286
1637
  */
1287
- bucket: 'videos' | 'avatars' | 'documents';
1638
+ country: string;
1288
1639
  /**
1289
- * MIME type of the file being uploaded
1290
- */
1291
- contentType: string;
1292
- /**
1293
- * Size of the file in bytes
1294
- */
1295
- sizeBytes: number;
1296
- /**
1297
- * Optional filename hint (not used for path)
1298
- */
1299
- filenameHint?: string;
1300
- };
1301
-
1302
- export type UploadUrlResponseDto = {
1303
- /**
1304
- * Signed URL the client PUTs raw bytes to
1305
- */
1306
- uploadUrl: string;
1307
- /**
1308
- * Signed-upload token (opaque)
1309
- */
1310
- token: string;
1311
- /**
1312
- * Storage path (persist this as video_path / file_path)
1313
- */
1314
- path: string;
1315
- /**
1316
- * Bucket the upload targets
1317
- */
1318
- bucket: string;
1319
- /**
1320
- * URL validity window in seconds
1321
- */
1322
- expiresIn: number;
1323
- };
1324
-
1325
- export type SendInvitationRequestDto = {
1326
- email: string;
1327
- };
1328
-
1329
- export type InvitationResponseDto = {
1330
- id: string;
1331
- email: string;
1332
- firstName?: string | null;
1333
- lastName?: string | null;
1334
- status: 'confirmed' | 'pending' | 'expired';
1335
- invitedAt: string;
1336
- expiresAt: string;
1337
- acceptedAt?: string | null;
1338
- };
1339
-
1340
- export type StartKycRequestDto = {
1341
- /**
1342
- * ISO 3166-1 alpha-2 country code (lowercase, matches index.countries)
1343
- */
1344
- country: string;
1345
- /**
1346
- * Channel initiating the KYC flow
1640
+ * Channel initiating the KYC flow
1347
1641
  */
1348
1642
  channel: 'web' | 'mobile';
1349
1643
  };
@@ -1442,6 +1736,102 @@ export type CancelKycRequestDto = {
1442
1736
  jobId: string;
1443
1737
  };
1444
1738
 
1739
+ export type BodyMeasurementProfileDto = {
1740
+ id: string;
1741
+ createdAt?: string | null;
1742
+ selfReportedHeightCm?: number | null;
1743
+ wingspanToSkeletonRatio?: number | null;
1744
+ legToTorsoRatio?: number | null;
1745
+ femurToTibiaRatio?: number | null;
1746
+ shoulderToHipRatio?: number | null;
1747
+ headCircumferenceCm?: number | null;
1748
+ neckCircumferenceCm?: number | null;
1749
+ chestCircumferenceCm?: number | null;
1750
+ waistCircumferenceCm?: number | null;
1751
+ hipCircumferenceCm?: number | null;
1752
+ footLengthCm?: number | null;
1753
+ footWidthCm?: number | null;
1754
+ qualityStatus?: string | null;
1755
+ metricStatus?: {
1756
+ [key: string]: unknown;
1757
+ };
1758
+ poseLandmarksContext?: {
1759
+ [key: string]: unknown;
1760
+ };
1761
+ isUsable: boolean;
1762
+ };
1763
+
1764
+ export type CmjMeasurementProfileDto = {
1765
+ id: string;
1766
+ createdAt?: string | null;
1767
+ verticalJumpCm?: number | null;
1768
+ qualityTier?: string | null;
1769
+ retakeReason?: string | null;
1770
+ isUsable: boolean;
1771
+ };
1772
+
1773
+ export type MeasurementSessionMetricsDto = {
1774
+ selfReportedHeightCm?: number | null;
1775
+ verticalJumpCm?: number | null;
1776
+ wingspanToSkeletonRatio?: number | null;
1777
+ legToTorsoRatio?: number | null;
1778
+ femurToTibiaRatio?: number | null;
1779
+ shoulderToHipRatio?: number | null;
1780
+ };
1781
+
1782
+ export type MeasurementTagEvaluationDto = {
1783
+ key?: string;
1784
+ status?: string;
1785
+ label?: string;
1786
+ };
1787
+
1788
+ export type MeasurementSessionDto = {
1789
+ id: string;
1790
+ bodyMeasurementId: string;
1791
+ jumpMeasurementId: string;
1792
+ contractVersion?: string | null;
1793
+ schemaVersion?: string | null;
1794
+ rulesetId?: string | null;
1795
+ rulesetVersion?: string | null;
1796
+ metrics: MeasurementSessionMetricsDto;
1797
+ declaredPositions?: {
1798
+ [key: string]: unknown;
1799
+ };
1800
+ biomechanicalAlignment?: {
1801
+ [key: string]: unknown;
1802
+ };
1803
+ biomechanicalAlignmentCopyKeys?: Array<string>;
1804
+ checkedTagKeys?: Array<string>;
1805
+ tagEvaluations?: Array<MeasurementTagEvaluationDto>;
1806
+ qualitySummary?: {
1807
+ [key: string]: unknown;
1808
+ };
1809
+ playerDisplay?: {
1810
+ [key: string]: unknown;
1811
+ };
1812
+ scoutDisplay?: {
1813
+ [key: string]: unknown;
1814
+ };
1815
+ metricDefinitions?: {
1816
+ [key: string]: unknown;
1817
+ };
1818
+ createdAt?: string | null;
1819
+ updatedAt?: string | null;
1820
+ };
1821
+
1822
+ export type MeasurementProfileResponseDto = {
1823
+ status: 'missing' | 'partial' | 'ready' | 'needs_update';
1824
+ body?: BodyMeasurementProfileDto | null;
1825
+ cmj?: CmjMeasurementProfileDto | null;
1826
+ session?: MeasurementSessionDto | null;
1827
+ updatedAt?: string | null;
1828
+ };
1829
+
1830
+ export type CreateMeasurementPlayerSessionDto = {
1831
+ bodyMeasurementId: string;
1832
+ jumpMeasurementId: string;
1833
+ };
1834
+
1445
1835
  export type TrainingContentListItemDto = {
1446
1836
  id: string;
1447
1837
  title: string;
@@ -1494,6 +1884,14 @@ export type VideoResponseDto = {
1494
1884
  thumbnailUrl?: string | null;
1495
1885
  videoType?: string | null;
1496
1886
  durationSeconds?: number | null;
1887
+ /**
1888
+ * Original uploaded file size in bytes, when known.
1889
+ */
1890
+ fileSizeBytes?: number | null;
1891
+ /**
1892
+ * Original client-side file name, when known.
1893
+ */
1894
+ originalFileName?: string | null;
1497
1895
  uploadStatus?: string | null;
1498
1896
  processingStatus?: string | null;
1499
1897
  isPublic?: boolean | null;
@@ -1525,6 +1923,14 @@ export type CreateVideoDto = {
1525
1923
  * Duration in seconds
1526
1924
  */
1527
1925
  durationSeconds?: number;
1926
+ /**
1927
+ * Original uploaded file size in bytes, used for duplicate warnings
1928
+ */
1929
+ fileSizeBytes?: number;
1930
+ /**
1931
+ * Original client-side file name, used for duplicate warnings
1932
+ */
1933
+ originalFileName?: string;
1528
1934
  /**
1529
1935
  * Make video public
1530
1936
  */
@@ -1823,6 +2229,33 @@ export type PostApiPlayersSearchResponses = {
1823
2229
  export type PostApiPlayersSearchResponse =
1824
2230
  PostApiPlayersSearchResponses[keyof PostApiPlayersSearchResponses];
1825
2231
 
2232
+ export type GetApiPlayersByIdReportData = {
2233
+ body?: never;
2234
+ path: {
2235
+ id: string;
2236
+ };
2237
+ query?: never;
2238
+ url: '/api/players/{id}/report';
2239
+ };
2240
+
2241
+ export type GetApiPlayersByIdReportErrors = {
2242
+ /**
2243
+ * Unauthorized
2244
+ */
2245
+ 401: unknown;
2246
+ /**
2247
+ * Player or report not found
2248
+ */
2249
+ 404: unknown;
2250
+ };
2251
+
2252
+ export type GetApiPlayersByIdReportResponses = {
2253
+ 200: PlayerReportResponseDto;
2254
+ };
2255
+
2256
+ export type GetApiPlayersByIdReportResponse =
2257
+ GetApiPlayersByIdReportResponses[keyof GetApiPlayersByIdReportResponses];
2258
+
1826
2259
  export type GetApiPlayersByIdData = {
1827
2260
  body?: never;
1828
2261
  path: {
@@ -1850,6 +2283,282 @@ export type GetApiPlayersByIdResponses = {
1850
2283
  export type GetApiPlayersByIdResponse =
1851
2284
  GetApiPlayersByIdResponses[keyof GetApiPlayersByIdResponses];
1852
2285
 
2286
+ export type GetApiBillingPlansData = {
2287
+ body?: never;
2288
+ path?: never;
2289
+ query?: {
2290
+ surface?: 'web' | 'ios' | 'android';
2291
+ };
2292
+ url: '/api/billing/plans';
2293
+ };
2294
+
2295
+ export type GetApiBillingPlansResponses = {
2296
+ /**
2297
+ * Player billing plans
2298
+ */
2299
+ 200: BillingPlansResponseDto;
2300
+ };
2301
+
2302
+ export type GetApiBillingPlansResponse =
2303
+ GetApiBillingPlansResponses[keyof GetApiBillingPlansResponses];
2304
+
2305
+ export type GetApiBillingProductsData = {
2306
+ body?: never;
2307
+ path?: never;
2308
+ query?: {
2309
+ surface?: 'web' | 'ios' | 'android';
2310
+ };
2311
+ url: '/api/billing/products';
2312
+ };
2313
+
2314
+ export type GetApiBillingProductsResponses = {
2315
+ /**
2316
+ * Player one-time billing products
2317
+ */
2318
+ 200: BillingProductsResponseDto;
2319
+ };
2320
+
2321
+ export type GetApiBillingProductsResponse =
2322
+ GetApiBillingProductsResponses[keyof GetApiBillingProductsResponses];
2323
+
2324
+ export type GetApiBillingMeData = {
2325
+ body?: never;
2326
+ path?: never;
2327
+ query?: never;
2328
+ url: '/api/billing/me';
2329
+ };
2330
+
2331
+ export type GetApiBillingMeResponses = {
2332
+ /**
2333
+ * Current player billing access
2334
+ */
2335
+ 200: BillingEntitlementResponseDto;
2336
+ };
2337
+
2338
+ export type GetApiBillingMeResponse =
2339
+ GetApiBillingMeResponses[keyof GetApiBillingMeResponses];
2340
+
2341
+ export type PostApiBillingAccessCodesRedeemData = {
2342
+ body: RedeemAccessCodeDto;
2343
+ path?: never;
2344
+ query?: never;
2345
+ url: '/api/billing/access-codes/redeem';
2346
+ };
2347
+
2348
+ export type PostApiBillingAccessCodesRedeemResponses = {
2349
+ /**
2350
+ * Redeemed access entitlement
2351
+ */
2352
+ 201: BillingEntitlementResponseDto;
2353
+ };
2354
+
2355
+ export type PostApiBillingAccessCodesRedeemResponse =
2356
+ PostApiBillingAccessCodesRedeemResponses[keyof PostApiBillingAccessCodesRedeemResponses];
2357
+
2358
+ export type GetApiBillingReportPurchasesCurrentData = {
2359
+ body?: never;
2360
+ path?: never;
2361
+ query?: never;
2362
+ url: '/api/billing/report-purchases/current';
2363
+ };
2364
+
2365
+ export type GetApiBillingReportPurchasesCurrentResponses = {
2366
+ /**
2367
+ * Current open AI report purchase credit and prerequisites
2368
+ */
2369
+ 200: ReportPurchaseStatusResponseDto;
2370
+ };
2371
+
2372
+ export type GetApiBillingReportPurchasesCurrentResponse =
2373
+ GetApiBillingReportPurchasesCurrentResponses[keyof GetApiBillingReportPurchasesCurrentResponses];
2374
+
2375
+ export type GetApiBillingReportPurchasesByIdReportData = {
2376
+ body?: never;
2377
+ path: {
2378
+ id: string;
2379
+ };
2380
+ query?: never;
2381
+ url: '/api/billing/report-purchases/{id}/report';
2382
+ };
2383
+
2384
+ export type GetApiBillingReportPurchasesByIdReportResponses = {
2385
+ /**
2386
+ * Fulfilled AI report result
2387
+ */
2388
+ 200: AiReportResultResponseDto;
2389
+ };
2390
+
2391
+ export type GetApiBillingReportPurchasesByIdReportResponse =
2392
+ GetApiBillingReportPurchasesByIdReportResponses[keyof GetApiBillingReportPurchasesByIdReportResponses];
2393
+
2394
+ export type PostApiBillingReportPurchasesByIdStartGenerationData = {
2395
+ body: StartReportGenerationRequestDto;
2396
+ path: {
2397
+ id: string;
2398
+ };
2399
+ query?: never;
2400
+ url: '/api/billing/report-purchases/{id}/start-generation';
2401
+ };
2402
+
2403
+ export type PostApiBillingReportPurchasesByIdStartGenerationResponses = {
2404
+ /**
2405
+ * Report generation started
2406
+ */
2407
+ 201: ReportGenerationStartResponseDto;
2408
+ };
2409
+
2410
+ export type PostApiBillingReportPurchasesByIdStartGenerationResponse =
2411
+ PostApiBillingReportPurchasesByIdStartGenerationResponses[keyof PostApiBillingReportPurchasesByIdStartGenerationResponses];
2412
+
2413
+ export type PostApiBillingReportPurchasesPlayerCandidatesData = {
2414
+ body: ReportPlayerCandidatesRequestDto;
2415
+ path?: never;
2416
+ query?: never;
2417
+ url: '/api/billing/report-purchases/player-candidates';
2418
+ };
2419
+
2420
+ export type PostApiBillingReportPurchasesPlayerCandidatesResponses = {
2421
+ /**
2422
+ * Candidate player selections grouped by report video
2423
+ */
2424
+ 200: ReportPlayerCandidatesResponseDto;
2425
+ };
2426
+
2427
+ export type PostApiBillingReportPurchasesPlayerCandidatesResponse =
2428
+ PostApiBillingReportPurchasesPlayerCandidatesResponses[keyof PostApiBillingReportPurchasesPlayerCandidatesResponses];
2429
+
2430
+ export type PostApiBillingStripeCheckoutSessionData = {
2431
+ body: ProviderCheckoutRequestDto;
2432
+ path?: never;
2433
+ query?: never;
2434
+ url: '/api/billing/stripe/checkout-session';
2435
+ };
2436
+
2437
+ export type PostApiBillingStripeCheckoutSessionResponses = {
2438
+ 201: unknown;
2439
+ };
2440
+
2441
+ export type PostApiBillingStripePortalSessionData = {
2442
+ body?: never;
2443
+ path?: never;
2444
+ query?: never;
2445
+ url: '/api/billing/stripe/portal-session';
2446
+ };
2447
+
2448
+ export type PostApiBillingStripePortalSessionResponses = {
2449
+ 201: unknown;
2450
+ };
2451
+
2452
+ export type PostApiBillingAppleSyncPurchaseData = {
2453
+ body: StorePurchaseSyncRequestDto;
2454
+ path?: never;
2455
+ query?: never;
2456
+ url: '/api/billing/apple/sync-purchase';
2457
+ };
2458
+
2459
+ export type PostApiBillingAppleSyncPurchaseResponses = {
2460
+ 201: unknown;
2461
+ };
2462
+
2463
+ export type PostApiBillingGoogleSyncPurchaseData = {
2464
+ body: StorePurchaseSyncRequestDto;
2465
+ path?: never;
2466
+ query?: never;
2467
+ url: '/api/billing/google/sync-purchase';
2468
+ };
2469
+
2470
+ export type PostApiBillingGoogleSyncPurchaseResponses = {
2471
+ 201: unknown;
2472
+ };
2473
+
2474
+ export type GetApiNotificationsPreferencesData = {
2475
+ body?: never;
2476
+ path?: never;
2477
+ query?: never;
2478
+ url: '/api/notifications/preferences';
2479
+ };
2480
+
2481
+ export type GetApiNotificationsPreferencesResponses = {
2482
+ 200: NotificationPreferencesDto;
2483
+ };
2484
+
2485
+ export type GetApiNotificationsPreferencesResponse =
2486
+ GetApiNotificationsPreferencesResponses[keyof GetApiNotificationsPreferencesResponses];
2487
+
2488
+ export type PatchApiNotificationsPreferencesData = {
2489
+ body: UpdateNotificationPreferencesDto;
2490
+ path?: never;
2491
+ query?: never;
2492
+ url: '/api/notifications/preferences';
2493
+ };
2494
+
2495
+ export type PatchApiNotificationsPreferencesResponses = {
2496
+ 200: NotificationPreferencesDto;
2497
+ };
2498
+
2499
+ export type PatchApiNotificationsPreferencesResponse =
2500
+ PatchApiNotificationsPreferencesResponses[keyof PatchApiNotificationsPreferencesResponses];
2501
+
2502
+ export type PostApiNotificationsDevicesData = {
2503
+ body: RegisterPushDeviceDto;
2504
+ path?: never;
2505
+ query?: never;
2506
+ url: '/api/notifications/devices';
2507
+ };
2508
+
2509
+ export type PostApiNotificationsDevicesResponses = {
2510
+ 201: PushDeviceRegistrationResultDto;
2511
+ };
2512
+
2513
+ export type PostApiNotificationsDevicesResponse =
2514
+ PostApiNotificationsDevicesResponses[keyof PostApiNotificationsDevicesResponses];
2515
+
2516
+ export type DeleteApiNotificationsDevicesCurrentData = {
2517
+ body: DeactivatePushDeviceDto;
2518
+ path?: never;
2519
+ query?: never;
2520
+ url: '/api/notifications/devices/current';
2521
+ };
2522
+
2523
+ export type DeleteApiNotificationsDevicesCurrentResponses = {
2524
+ 200: OkDto;
2525
+ };
2526
+
2527
+ export type DeleteApiNotificationsDevicesCurrentResponse =
2528
+ DeleteApiNotificationsDevicesCurrentResponses[keyof DeleteApiNotificationsDevicesCurrentResponses];
2529
+
2530
+ export type PostApiStorageUploadUrlData = {
2531
+ body: CreateUploadUrlDto;
2532
+ path?: never;
2533
+ query?: never;
2534
+ url: '/api/storage/upload-url';
2535
+ };
2536
+
2537
+ export type PostApiStorageUploadUrlErrors = {
2538
+ /**
2539
+ * Unknown bucket or disallowed MIME
2540
+ */
2541
+ 400: unknown;
2542
+ /**
2543
+ * Unauthorized
2544
+ */
2545
+ 401: unknown;
2546
+ /**
2547
+ * File too large for bucket
2548
+ */
2549
+ 413: unknown;
2550
+ };
2551
+
2552
+ export type PostApiStorageUploadUrlResponses = {
2553
+ /**
2554
+ * Signed upload URL issued
2555
+ */
2556
+ 201: UploadUrlResponseDto;
2557
+ };
2558
+
2559
+ export type PostApiStorageUploadUrlResponse =
2560
+ PostApiStorageUploadUrlResponses[keyof PostApiStorageUploadUrlResponses];
2561
+
1853
2562
  export type GetApiProfileMeData = {
1854
2563
  body?: never;
1855
2564
  path?: never;
@@ -1989,6 +2698,34 @@ export type PostApiBodyMeasurementsResponses = {
1989
2698
  export type PostApiBodyMeasurementsResponse =
1990
2699
  PostApiBodyMeasurementsResponses[keyof PostApiBodyMeasurementsResponses];
1991
2700
 
2701
+ export type GetApiCmjMeasurementsMeData = {
2702
+ body?: never;
2703
+ path?: never;
2704
+ query?: never;
2705
+ url: '/api/cmj/measurements/me';
2706
+ };
2707
+
2708
+ export type GetApiCmjMeasurementsMeErrors = {
2709
+ /**
2710
+ * Unauthorized
2711
+ */
2712
+ 401: unknown;
2713
+ /**
2714
+ * No measurement found
2715
+ */
2716
+ 404: unknown;
2717
+ };
2718
+
2719
+ export type GetApiCmjMeasurementsMeResponses = {
2720
+ /**
2721
+ * Latest CMJ measurement
2722
+ */
2723
+ 200: CmjMeasurementResponseDto;
2724
+ };
2725
+
2726
+ export type GetApiCmjMeasurementsMeResponse =
2727
+ GetApiCmjMeasurementsMeResponses[keyof GetApiCmjMeasurementsMeResponses];
2728
+
1992
2729
  export type GetApiChallengesData = {
1993
2730
  body?: never;
1994
2731
  path?: never;
@@ -2379,62 +3116,6 @@ export type PatchApiOffersConversationsByIdReadResponses = {
2379
3116
  200: unknown;
2380
3117
  };
2381
3118
 
2382
- export type GetApiNotificationsPreferencesData = {
2383
- body?: never;
2384
- path?: never;
2385
- query?: never;
2386
- url: '/api/notifications/preferences';
2387
- };
2388
-
2389
- export type GetApiNotificationsPreferencesResponses = {
2390
- 200: NotificationPreferencesDto;
2391
- };
2392
-
2393
- export type GetApiNotificationsPreferencesResponse =
2394
- GetApiNotificationsPreferencesResponses[keyof GetApiNotificationsPreferencesResponses];
2395
-
2396
- export type PatchApiNotificationsPreferencesData = {
2397
- body: UpdateNotificationPreferencesDto;
2398
- path?: never;
2399
- query?: never;
2400
- url: '/api/notifications/preferences';
2401
- };
2402
-
2403
- export type PatchApiNotificationsPreferencesResponses = {
2404
- 200: NotificationPreferencesDto;
2405
- };
2406
-
2407
- export type PatchApiNotificationsPreferencesResponse =
2408
- PatchApiNotificationsPreferencesResponses[keyof PatchApiNotificationsPreferencesResponses];
2409
-
2410
- export type PostApiNotificationsDevicesData = {
2411
- body: RegisterPushDeviceDto;
2412
- path?: never;
2413
- query?: never;
2414
- url: '/api/notifications/devices';
2415
- };
2416
-
2417
- export type PostApiNotificationsDevicesResponses = {
2418
- 201: PushDeviceRegistrationResultDto;
2419
- };
2420
-
2421
- export type PostApiNotificationsDevicesResponse =
2422
- PostApiNotificationsDevicesResponses[keyof PostApiNotificationsDevicesResponses];
2423
-
2424
- export type DeleteApiNotificationsDevicesCurrentData = {
2425
- body: DeactivatePushDeviceDto;
2426
- path?: never;
2427
- query?: never;
2428
- url: '/api/notifications/devices/current';
2429
- };
2430
-
2431
- export type DeleteApiNotificationsDevicesCurrentResponses = {
2432
- 200: OkDto;
2433
- };
2434
-
2435
- export type DeleteApiNotificationsDevicesCurrentResponse =
2436
- DeleteApiNotificationsDevicesCurrentResponses[keyof DeleteApiNotificationsDevicesCurrentResponses];
2437
-
2438
3119
  export type PostApiOrganizationsRegisterClubData = {
2439
3120
  body: RegisterClubDto;
2440
3121
  path?: never;
@@ -2535,38 +3216,6 @@ export type PutApiOrganizationsMeResponses = {
2535
3216
  export type PutApiOrganizationsMeResponse =
2536
3217
  PutApiOrganizationsMeResponses[keyof PutApiOrganizationsMeResponses];
2537
3218
 
2538
- export type PostApiStorageUploadUrlData = {
2539
- body: CreateUploadUrlDto;
2540
- path?: never;
2541
- query?: never;
2542
- url: '/api/storage/upload-url';
2543
- };
2544
-
2545
- export type PostApiStorageUploadUrlErrors = {
2546
- /**
2547
- * Unknown bucket or disallowed MIME
2548
- */
2549
- 400: unknown;
2550
- /**
2551
- * Unauthorized
2552
- */
2553
- 401: unknown;
2554
- /**
2555
- * File too large for bucket
2556
- */
2557
- 413: unknown;
2558
- };
2559
-
2560
- export type PostApiStorageUploadUrlResponses = {
2561
- /**
2562
- * Signed upload URL issued
2563
- */
2564
- 201: UploadUrlResponseDto;
2565
- };
2566
-
2567
- export type PostApiStorageUploadUrlResponse =
2568
- PostApiStorageUploadUrlResponses[keyof PostApiStorageUploadUrlResponses];
2569
-
2570
3219
  export type GetApiInvitationsData = {
2571
3220
  body?: never;
2572
3221
  path?: never;
@@ -2803,6 +3452,66 @@ export type GetApiKycStatusByUserIdResponses = {
2803
3452
  export type GetApiKycStatusByUserIdResponse =
2804
3453
  GetApiKycStatusByUserIdResponses[keyof GetApiKycStatusByUserIdResponses];
2805
3454
 
3455
+ export type GetApiMeasurementsProfileMeData = {
3456
+ body?: never;
3457
+ path?: never;
3458
+ query?: never;
3459
+ url: '/api/measurements/profile/me';
3460
+ };
3461
+
3462
+ export type GetApiMeasurementsProfileMeErrors = {
3463
+ /**
3464
+ * Unauthorized
3465
+ */
3466
+ 401: unknown;
3467
+ };
3468
+
3469
+ export type GetApiMeasurementsProfileMeResponses = {
3470
+ /**
3471
+ * Latest combined measurement profile
3472
+ */
3473
+ 200: MeasurementProfileResponseDto;
3474
+ };
3475
+
3476
+ export type GetApiMeasurementsProfileMeResponse =
3477
+ GetApiMeasurementsProfileMeResponses[keyof GetApiMeasurementsProfileMeResponses];
3478
+
3479
+ export type PostApiMeasurementsPlayerSessionMeData = {
3480
+ body: CreateMeasurementPlayerSessionDto;
3481
+ path?: never;
3482
+ query?: never;
3483
+ url: '/api/measurements/player-session/me';
3484
+ };
3485
+
3486
+ export type PostApiMeasurementsPlayerSessionMeErrors = {
3487
+ /**
3488
+ * Missing measurement ids
3489
+ */
3490
+ 400: unknown;
3491
+ /**
3492
+ * Unauthorized
3493
+ */
3494
+ 401: unknown;
3495
+ /**
3496
+ * Missing body or CMJ measurement
3497
+ */
3498
+ 409: unknown;
3499
+ /**
3500
+ * Interpretation service down
3501
+ */
3502
+ 503: unknown;
3503
+ };
3504
+
3505
+ export type PostApiMeasurementsPlayerSessionMeResponses = {
3506
+ /**
3507
+ * Combined measurement player session
3508
+ */
3509
+ 201: MeasurementSessionDto;
3510
+ };
3511
+
3512
+ export type PostApiMeasurementsPlayerSessionMeResponse =
3513
+ PostApiMeasurementsPlayerSessionMeResponses[keyof PostApiMeasurementsPlayerSessionMeResponses];
3514
+
2806
3515
  export type GetApiTrainingGroupedData = {
2807
3516
  body?: never;
2808
3517
  path?: never;