@brigadasos/nadeshiko-sdk 1.5.0-dev.ca90b30 → 1.5.0-dev.d0f4a07

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.
@@ -6,9 +6,9 @@ export type ClientOptions = {
6
6
  */
7
7
  export type MediaFilterItem = {
8
8
  /**
9
- * Media ID to filter
9
+ * Media identifier (publicId or AniList external ID)
10
10
  */
11
- mediaId: number;
11
+ mediaId: string;
12
12
  /**
13
13
  * Specific episodes (omit for all episodes)
14
14
  */
@@ -144,6 +144,10 @@ export type Segment = {
144
144
  * Unique identifier for the segment
145
145
  */
146
146
  uuid: string;
147
+ /**
148
+ * Public identifier for the segment (use this instead of uuid in public URLs)
149
+ */
150
+ publicId: string;
147
151
  /**
148
152
  * Position of the segment within the episode
149
153
  */
@@ -169,6 +173,10 @@ export type Segment = {
169
173
  * Media ID this segment belongs to
170
174
  */
171
175
  mediaId: number;
176
+ /**
177
+ * Public ID of the media this segment belongs to
178
+ */
179
+ mediaPublicId: string;
172
180
  textJa: {
173
181
  /**
174
182
  * Original Japanese content
@@ -241,6 +249,10 @@ export type ExternalId = {
241
249
  * TVDB ID
242
250
  */
243
251
  tvdb?: string;
252
+ /**
253
+ * TMDB ID
254
+ */
255
+ tmdb?: string;
244
256
  };
245
257
  /**
246
258
  * Japanese voice actor (seiyuu)
@@ -250,6 +262,10 @@ export type Seiyuu = {
250
262
  * Internal seiyuu ID
251
263
  */
252
264
  id: number;
265
+ /**
266
+ * Public identifier for the seiyuu (use this in public URLs)
267
+ */
268
+ publicId: string;
253
269
  externalIds: ExternalId;
254
270
  /**
255
271
  * Japanese name of the voice actor
@@ -295,9 +311,13 @@ export type MediaCharacter = {
295
311
  */
296
312
  export type Media = {
297
313
  /**
298
- * Unique identifier for the media
314
+ * Internal unique identifier for the media
299
315
  */
300
316
  id: number;
317
+ /**
318
+ * Public identifier for the media (use this in public URLs)
319
+ */
320
+ publicId: string;
301
321
  externalIds: ExternalId;
302
322
  /**
303
323
  * Original Japanese name of the media
@@ -351,7 +371,7 @@ export type Media = {
351
371
  /**
352
372
  * Animation studio that produced the media
353
373
  */
354
- studio: string;
374
+ studio?: string;
355
375
  /**
356
376
  * Airing season label for the media
357
377
  */
@@ -390,7 +410,7 @@ export type SearchResponse = {
390
410
  segments: Array<Segment>;
391
411
  includes: {
392
412
  /**
393
- * Media objects keyed by mediaId
413
+ * Media objects keyed by media publicId
394
414
  */
395
415
  media: {
396
416
  [key: string]: Media;
@@ -601,6 +621,10 @@ export type MediaSearchStats = {
601
621
  * Media identifier (look up full details in includes.media)
602
622
  */
603
623
  mediaId: number;
624
+ /**
625
+ * Public identifier for use in URLs and filters
626
+ */
627
+ publicId: string;
604
628
  /**
605
629
  * Number of matching segments found in this media
606
630
  */
@@ -627,7 +651,7 @@ export type SearchStatsResponse = {
627
651
  categories: Array<CategoryCount>;
628
652
  includes: {
629
653
  /**
630
- * Media objects keyed by mediaId
654
+ * Media objects keyed by media publicId
631
655
  */
632
656
  media: {
633
657
  [key: string]: Media;
@@ -719,6 +743,20 @@ export type OpaqueCursorPagination = {
719
743
  export type MediaListResponse = {
720
744
  media: Array<Media>;
721
745
  pagination: OpaqueCursorPagination;
746
+ stats: {
747
+ /**
748
+ * Total number of media across all pages
749
+ */
750
+ totalMedia: number;
751
+ /**
752
+ * Total number of non-deleted segments
753
+ */
754
+ totalSegments: number;
755
+ /**
756
+ * Total number of episodes
757
+ */
758
+ totalEpisodes: number;
759
+ };
722
760
  };
723
761
  /**
724
762
  * Character data for creating/updating media
@@ -813,7 +851,7 @@ export type MediaCreateRequest = {
813
851
  /**
814
852
  * Animation studio that produced the media
815
853
  */
816
- studio: string;
854
+ studio?: string;
817
855
  /**
818
856
  * Airing season label for the media
819
857
  */
@@ -866,8 +904,65 @@ export type Error409 = {
866
904
  [key: string]: string;
867
905
  };
868
906
  };
907
+ /**
908
+ * Slim media item returned by autocomplete (names + cover only)
909
+ */
910
+ export type MediaAutocompleteItem = {
911
+ /**
912
+ * Unique identifier for the media
913
+ */
914
+ id: number;
915
+ /**
916
+ * Original Japanese name of the media
917
+ */
918
+ nameJa: string;
919
+ /**
920
+ * Romaji transliteration of the media name
921
+ */
922
+ nameRomaji: string;
923
+ /**
924
+ * English name of the media
925
+ */
926
+ nameEn: string;
927
+ /**
928
+ * Full URL to the cover image
929
+ */
930
+ coverUrl: string;
931
+ category: Category;
932
+ };
869
933
  export type MediaAutocompleteResponse = {
870
- media: Array<Media>;
934
+ media: Array<MediaAutocompleteItem>;
935
+ };
936
+ /**
937
+ * Segment with internal fields. For write operations (create, update) all fields are always populated.
938
+ * For GET, optional fields are only populated when requested via include[].
939
+ *
940
+ */
941
+ export type SegmentInternal = Segment & {
942
+ /**
943
+ * Storage backend for segment assets
944
+ */
945
+ storage?: 'LOCAL' | 'R2';
946
+ /**
947
+ * Hash identifier for the segment
948
+ */
949
+ hashedId?: string;
950
+ /**
951
+ * Base path in the storage backend
952
+ */
953
+ storageBasePath?: string;
954
+ /**
955
+ * Raw WD Tagger v3 classifier output used to derive content rating
956
+ */
957
+ ratingAnalysis?: {
958
+ [key: string]: unknown;
959
+ };
960
+ /**
961
+ * POS tokenization results keyed by engine (sudachi, unidic)
962
+ */
963
+ posAnalysis?: {
964
+ [key: string]: unknown;
965
+ };
871
966
  };
872
967
  /**
873
968
  * Not Found error response
@@ -972,35 +1067,6 @@ export type SegmentUpdateRequest = {
972
1067
  */
973
1068
  hashedId?: string;
974
1069
  };
975
- /**
976
- * Segment with internal fields (for internal API responses)
977
- */
978
- export type SegmentInternal = Segment & {
979
- /**
980
- * Storage backend for segment assets
981
- */
982
- storage: 'LOCAL' | 'R2';
983
- /**
984
- * Hash identifier for the segment
985
- */
986
- hashedId: string;
987
- /**
988
- * Base path in the storage backend
989
- */
990
- storageBasePath: string;
991
- /**
992
- * Raw WD Tagger v3 classifier output used to derive content rating
993
- */
994
- ratingAnalysis: {
995
- [key: string]: unknown;
996
- };
997
- /**
998
- * POS tokenization results keyed by engine (sudachi, unidic)
999
- */
1000
- posAnalysis: {
1001
- [key: string]: unknown;
1002
- };
1003
- };
1004
1070
  export type SegmentContextResponse = {
1005
1071
  segments: Array<Segment>;
1006
1072
  includes: {
@@ -1012,6 +1078,30 @@ export type SegmentContextResponse = {
1012
1078
  };
1013
1079
  };
1014
1080
  };
1081
+ export type SegmentRevision = {
1082
+ /**
1083
+ * Revision ID
1084
+ */
1085
+ id: number;
1086
+ /**
1087
+ * Sequential revision number per segment
1088
+ */
1089
+ revisionNumber: number;
1090
+ /**
1091
+ * Snapshot of editable fields at the time of the revision
1092
+ */
1093
+ snapshot: {
1094
+ [key: string]: unknown;
1095
+ };
1096
+ /**
1097
+ * Name of the user who made the change
1098
+ */
1099
+ userName?: string;
1100
+ /**
1101
+ * When the revision was created
1102
+ */
1103
+ createdAt: string;
1104
+ };
1015
1105
  /**
1016
1106
  * Ordered media series grouping
1017
1107
  */
@@ -1020,6 +1110,10 @@ export type Series = {
1020
1110
  * Series ID
1021
1111
  */
1022
1112
  id: number;
1113
+ /**
1114
+ * Public identifier for the series
1115
+ */
1116
+ publicId: string;
1023
1117
  /**
1024
1118
  * Japanese name of the series
1025
1119
  */
@@ -1076,6 +1170,10 @@ export type Character = {
1076
1170
  * Internal character ID
1077
1171
  */
1078
1172
  id: number;
1173
+ /**
1174
+ * Public identifier for the character (use this in public URLs)
1175
+ */
1176
+ publicId: string;
1079
1177
  externalIds: ExternalId;
1080
1178
  /**
1081
1179
  * Japanese name of the character
@@ -1397,6 +1495,9 @@ export type SegmentCreateRequest = {
1397
1495
  */
1398
1496
  hashedId: string;
1399
1497
  };
1498
+ export type SegmentBatchCreateRequest = {
1499
+ segments: Array<SegmentCreateRequest>;
1500
+ };
1400
1501
  export type UserQuotaResponse = {
1401
1502
  /**
1402
1503
  * Number of API requests used in the current billing period.
@@ -1429,39 +1530,39 @@ export type ReportTargetMedia = {
1429
1530
  */
1430
1531
  type: 'MEDIA';
1431
1532
  /**
1432
- * Media ID this report targets
1533
+ * Public ID of the media this report targets
1433
1534
  */
1434
- mediaId: number;
1535
+ mediaId: string;
1435
1536
  };
1436
- export type ReportTargetSegment = {
1537
+ export type ReportTargetSegmentInput = {
1437
1538
  /**
1438
1539
  * Report target type
1439
1540
  */
1440
1541
  type: 'SEGMENT';
1441
1542
  /**
1442
- * Media ID this report targets
1543
+ * Public ID of the media this report targets
1443
1544
  */
1444
- mediaId: number;
1545
+ mediaId: string;
1445
1546
  /**
1446
1547
  * Episode number containing the segment
1447
1548
  */
1448
1549
  episodeNumber?: number;
1449
1550
  /**
1450
- * Segment UUID this report targets
1551
+ * Segment public ID or UUID
1451
1552
  */
1452
- segmentUuid: string;
1553
+ segmentId: string;
1453
1554
  };
1454
1555
  export type UserReportTarget = ({
1455
1556
  type: 'MEDIA';
1456
1557
  } & ReportTargetMedia) | ({
1457
1558
  type: 'SEGMENT';
1458
- } & ReportTargetSegment);
1559
+ } & ReportTargetSegmentInput);
1459
1560
  export type CreateReportRequest = {
1460
1561
  target: UserReportTarget;
1461
1562
  /**
1462
1563
  * Reason for the report
1463
1564
  */
1464
- reason: 'WRONG_TRANSLATION' | 'WRONG_TIMING' | 'WRONG_AUDIO' | 'NSFW_NOT_TAGGED' | 'DUPLICATE_SEGMENT' | 'WRONG_METADATA' | 'MISSING_EPISODES' | 'WRONG_COVER_IMAGE' | 'INAPPROPRIATE_CONTENT' | 'OTHER';
1565
+ reason: 'WRONG_TRANSLATION' | 'WRONG_TIMING' | 'WRONG_AUDIO' | 'WRONG_JAPANESE_TEXT' | 'LOW_QUALITY_AUDIO' | 'NSFW_NOT_TAGGED' | 'DUPLICATE_SEGMENT' | 'WRONG_TITLE' | 'DUPLICATE_MEDIA' | 'WRONG_EPISODE_NUMBER' | 'IMAGE_ISSUE' | 'MISSING_EPISODES' | 'INAPPROPRIATE_CONTENT' | 'OTHER';
1465
1566
  /**
1466
1567
  * Optional description with additional details
1467
1568
  */
@@ -1473,14 +1574,32 @@ export type ReportTargetEpisode = {
1473
1574
  */
1474
1575
  type: 'EPISODE';
1475
1576
  /**
1476
- * Media ID this report targets
1577
+ * Public ID of the media this report targets
1477
1578
  */
1478
- mediaId: number;
1579
+ mediaId: string;
1479
1580
  /**
1480
1581
  * Episode number this report targets
1481
1582
  */
1482
1583
  episodeNumber: number;
1483
1584
  };
1585
+ export type ReportTargetSegment = {
1586
+ /**
1587
+ * Report target type
1588
+ */
1589
+ type: 'SEGMENT';
1590
+ /**
1591
+ * Public ID of the media this report targets
1592
+ */
1593
+ mediaId: string;
1594
+ /**
1595
+ * Episode number containing the segment
1596
+ */
1597
+ episodeNumber?: number;
1598
+ /**
1599
+ * Segment public ID or UUID
1600
+ */
1601
+ segmentId: string;
1602
+ };
1484
1603
  export type ReportTarget = ({
1485
1604
  type: 'MEDIA';
1486
1605
  } & ReportTargetMedia) | ({
@@ -1505,7 +1624,7 @@ export type Report = {
1505
1624
  /**
1506
1625
  * Reason for the report
1507
1626
  */
1508
- reason: 'WRONG_TRANSLATION' | 'WRONG_TIMING' | 'WRONG_AUDIO' | 'NSFW_NOT_TAGGED' | 'DUPLICATE_SEGMENT' | 'WRONG_METADATA' | 'MISSING_EPISODES' | 'WRONG_COVER_IMAGE' | 'INAPPROPRIATE_CONTENT' | 'OTHER' | 'LOW_SEGMENT_MEDIA' | 'EMPTY_EPISODES' | 'MISSING_EPISODES_AUTO' | 'BAD_SEGMENT_RATIO' | 'MEDIA_WITH_NO_EPISODES' | 'MISSING_TRANSLATIONS' | 'DB_ES_SYNC_ISSUES' | 'HIGH_REPORT_DENSITY';
1627
+ reason: 'WRONG_TRANSLATION' | 'WRONG_TIMING' | 'WRONG_AUDIO' | 'WRONG_JAPANESE_TEXT' | 'LOW_QUALITY_AUDIO' | 'NSFW_NOT_TAGGED' | 'DUPLICATE_SEGMENT' | 'WRONG_METADATA' | 'MISSING_EPISODES' | 'WRONG_COVER_IMAGE' | 'WRONG_TITLE' | 'DUPLICATE_MEDIA' | 'WRONG_EPISODE_NUMBER' | 'IMAGE_ISSUE' | 'INAPPROPRIATE_CONTENT' | 'OTHER' | 'LOW_SEGMENT_MEDIA' | 'EMPTY_EPISODES' | 'MISSING_EPISODES_AUTO' | 'BAD_SEGMENT_RATIO' | 'MEDIA_WITH_NO_EPISODES' | 'MISSING_TRANSLATIONS' | 'DB_ES_SYNC_ISSUES' | 'HIGH_REPORT_DENSITY';
1509
1628
  /**
1510
1629
  * Optional description with additional details
1511
1630
  */
@@ -1584,17 +1703,26 @@ export type UserPreferences = {
1584
1703
  /**
1585
1704
  * Type of user activity
1586
1705
  */
1587
- export type ActivityType = 'SEARCH' | 'ANKI_EXPORT' | 'SEGMENT_PLAY' | 'LIST_ADD_SEGMENT';
1706
+ export type ActivityType = 'SEARCH' | 'ANKI_EXPORT' | 'SEGMENT_PLAY' | 'SHARE';
1588
1707
  export type UserActivity = {
1589
1708
  id: number;
1590
1709
  activityType: ActivityType;
1591
- segmentUuid: string;
1710
+ segmentId: number;
1592
1711
  mediaId: number;
1593
1712
  searchQuery: string;
1594
1713
  mediaName: string;
1595
1714
  japaneseText: string;
1596
1715
  createdAt: string;
1597
1716
  };
1717
+ /**
1718
+ * Activity counts for a single day, broken down by type. Only types with at least 1 event are present.
1719
+ */
1720
+ export type HeatmapDayCounts = {
1721
+ SEARCH?: number;
1722
+ SEGMENT_PLAY?: number;
1723
+ ANKI_EXPORT?: number;
1724
+ SHARE?: number;
1725
+ };
1598
1726
  /**
1599
1727
  * User segment collection
1600
1728
  */
@@ -1603,10 +1731,18 @@ export type Collection = {
1603
1731
  * Collection ID
1604
1732
  */
1605
1733
  id: number;
1734
+ /**
1735
+ * Public identifier for the collection
1736
+ */
1737
+ publicId: string;
1606
1738
  /**
1607
1739
  * Name of the collection
1608
1740
  */
1609
1741
  name: string;
1742
+ /**
1743
+ * Type of the collection
1744
+ */
1745
+ type: 'USER' | 'ANKI_EXPORT';
1610
1746
  /**
1611
1747
  * Visibility of the collection
1612
1748
  */
@@ -1626,9 +1762,9 @@ export type Collection = {
1626
1762
  };
1627
1763
  export type UserExportCollection = Collection & {
1628
1764
  /**
1629
- * Segment UUIDs in saved order
1765
+ * Segment IDs in saved order
1630
1766
  */
1631
- segmentUuids: Array<string>;
1767
+ segmentIds: Array<number>;
1632
1768
  };
1633
1769
  /**
1634
1770
  * User data export payload (identifier-oriented references)
@@ -2202,11 +2338,16 @@ export type GetSegmentByUuidData = {
2202
2338
  body?: never;
2203
2339
  path: {
2204
2340
  /**
2205
- * Segment UUID
2341
+ * Segment UUID or publicId
2206
2342
  */
2207
2343
  uuid: string;
2208
2344
  };
2209
- query?: never;
2345
+ query?: {
2346
+ /**
2347
+ * Additional internal fields to include in the response
2348
+ */
2349
+ include?: Array<'ratingAnalysis' | 'posAnalysis' | 'hashedId' | 'storageBasePath' | 'storage'>;
2350
+ };
2210
2351
  url: '/v1/media/segments/{uuid}';
2211
2352
  };
2212
2353
  export type GetSegmentByUuidErrors = {
@@ -2215,7 +2356,7 @@ export type GetSegmentByUuidErrors = {
2215
2356
  */
2216
2357
  400: Error400;
2217
2358
  /**
2218
- * Unauthorized (API key)
2359
+ * Unauthorized (API key or session)
2219
2360
  */
2220
2361
  401: Error401;
2221
2362
  /**
@@ -2238,16 +2379,16 @@ export type GetSegmentByUuidErrors = {
2238
2379
  export type GetSegmentByUuidError = GetSegmentByUuidErrors[keyof GetSegmentByUuidErrors];
2239
2380
  export type GetSegmentByUuidResponses = {
2240
2381
  /**
2241
- * OK
2382
+ * Single segment response with internal fields
2242
2383
  */
2243
- 200: Segment;
2384
+ 200: SegmentInternal;
2244
2385
  };
2245
2386
  export type GetSegmentByUuidResponse = GetSegmentByUuidResponses[keyof GetSegmentByUuidResponses];
2246
2387
  export type UpdateSegmentByUuidData = {
2247
2388
  body: SegmentUpdateRequest;
2248
2389
  path: {
2249
2390
  /**
2250
- * Segment UUID
2391
+ * Segment UUID or publicId
2251
2392
  */
2252
2393
  uuid: string;
2253
2394
  };
@@ -2292,7 +2433,7 @@ export type GetSegmentContextData = {
2292
2433
  body?: never;
2293
2434
  path: {
2294
2435
  /**
2295
- * Segment UUID
2436
+ * Segment UUID or publicId
2296
2437
  */
2297
2438
  uuid: string;
2298
2439
  };
@@ -2314,7 +2455,7 @@ export type GetSegmentContextErrors = {
2314
2455
  */
2315
2456
  400: Error400;
2316
2457
  /**
2317
- * Unauthorized (API key)
2458
+ * Unauthorized (API key or session)
2318
2459
  */
2319
2460
  401: Error401;
2320
2461
  /**
@@ -2342,6 +2483,53 @@ export type GetSegmentContextResponses = {
2342
2483
  200: SegmentContextResponse;
2343
2484
  };
2344
2485
  export type GetSegmentContextResponse = GetSegmentContextResponses[keyof GetSegmentContextResponses];
2486
+ export type ListSegmentRevisionsData = {
2487
+ body?: never;
2488
+ path: {
2489
+ /**
2490
+ * Segment UUID or publicId
2491
+ */
2492
+ uuid: string;
2493
+ };
2494
+ query?: never;
2495
+ url: '/v1/media/segments/{uuid}/revisions';
2496
+ };
2497
+ export type ListSegmentRevisionsErrors = {
2498
+ /**
2499
+ * Bad Request
2500
+ */
2501
+ 400: Error400;
2502
+ /**
2503
+ * Unauthorized (API key or session)
2504
+ */
2505
+ 401: Error401;
2506
+ /**
2507
+ * Forbidden
2508
+ */
2509
+ 403: Error403;
2510
+ /**
2511
+ * Not Found
2512
+ */
2513
+ 404: Error404;
2514
+ /**
2515
+ * Too Many Requests
2516
+ */
2517
+ 429: Error429;
2518
+ /**
2519
+ * Internal Server Error
2520
+ */
2521
+ 500: Error500;
2522
+ };
2523
+ export type ListSegmentRevisionsError = ListSegmentRevisionsErrors[keyof ListSegmentRevisionsErrors];
2524
+ export type ListSegmentRevisionsResponses = {
2525
+ /**
2526
+ * List of segment revisions
2527
+ */
2528
+ 200: {
2529
+ revisions: Array<SegmentRevision>;
2530
+ };
2531
+ };
2532
+ export type ListSegmentRevisionsResponse = ListSegmentRevisionsResponses[keyof ListSegmentRevisionsResponses];
2345
2533
  export type ListSeriesData = {
2346
2534
  body?: never;
2347
2535
  path?: never;
@@ -2444,9 +2632,9 @@ export type DeleteSeriesData = {
2444
2632
  body?: never;
2445
2633
  path: {
2446
2634
  /**
2447
- * Series ID
2635
+ * Series public ID
2448
2636
  */
2449
- id: number;
2637
+ id: string;
2450
2638
  };
2451
2639
  query?: never;
2452
2640
  url: '/v1/media/series/{id}';
@@ -2489,9 +2677,9 @@ export type GetSeriesData = {
2489
2677
  body?: never;
2490
2678
  path: {
2491
2679
  /**
2492
- * Series ID
2680
+ * Series public ID
2493
2681
  */
2494
- id: number;
2682
+ id: string;
2495
2683
  };
2496
2684
  query?: {
2497
2685
  /**
@@ -2552,9 +2740,9 @@ export type UpdateSeriesData = {
2552
2740
  };
2553
2741
  path: {
2554
2742
  /**
2555
- * Series ID
2743
+ * Series public ID
2556
2744
  */
2557
- id: number;
2745
+ id: string;
2558
2746
  };
2559
2747
  query?: never;
2560
2748
  url: '/v1/media/series/{id}';
@@ -2596,9 +2784,9 @@ export type UpdateSeriesResponse = UpdateSeriesResponses[keyof UpdateSeriesRespo
2596
2784
  export type AddMediaToSeriesData = {
2597
2785
  body: {
2598
2786
  /**
2599
- * Media ID to add
2787
+ * Media public ID to add
2600
2788
  */
2601
- mediaId: number;
2789
+ mediaId: string;
2602
2790
  /**
2603
2791
  * Position in the series (1-indexed)
2604
2792
  */
@@ -2606,9 +2794,9 @@ export type AddMediaToSeriesData = {
2606
2794
  };
2607
2795
  path: {
2608
2796
  /**
2609
- * Series ID
2797
+ * Series public ID
2610
2798
  */
2611
- id: number;
2799
+ id: string;
2612
2800
  };
2613
2801
  query?: never;
2614
2802
  url: '/v1/media/series/{id}/media';
@@ -2651,13 +2839,13 @@ export type RemoveMediaFromSeriesData = {
2651
2839
  body?: never;
2652
2840
  path: {
2653
2841
  /**
2654
- * Series ID
2842
+ * Series public ID
2655
2843
  */
2656
- id: number;
2844
+ id: string;
2657
2845
  /**
2658
- * Media ID
2846
+ * Media public ID
2659
2847
  */
2660
- mediaId: number;
2848
+ mediaId: string;
2661
2849
  };
2662
2850
  query?: never;
2663
2851
  url: '/v1/media/series/{id}/media/{mediaId}';
@@ -2705,13 +2893,13 @@ export type UpdateSeriesMediaData = {
2705
2893
  };
2706
2894
  path: {
2707
2895
  /**
2708
- * Series ID
2896
+ * Series public ID
2709
2897
  */
2710
- id: number;
2898
+ id: string;
2711
2899
  /**
2712
- * Media ID
2900
+ * Media public ID
2713
2901
  */
2714
- mediaId: number;
2902
+ mediaId: string;
2715
2903
  };
2716
2904
  query?: never;
2717
2905
  url: '/v1/media/series/{id}/media/{mediaId}';
@@ -2754,7 +2942,7 @@ export type GetCharacterData = {
2754
2942
  body?: never;
2755
2943
  path: {
2756
2944
  /**
2757
- * Internal character ID
2945
+ * Character ID
2758
2946
  */
2759
2947
  id: number;
2760
2948
  };
@@ -2844,9 +3032,9 @@ export type DeleteMediaData = {
2844
3032
  body?: never;
2845
3033
  path: {
2846
3034
  /**
2847
- * Media ID
3035
+ * Media public ID
2848
3036
  */
2849
- id: number;
3037
+ id: string;
2850
3038
  };
2851
3039
  query?: never;
2852
3040
  url: '/v1/media/{id}';
@@ -2889,9 +3077,9 @@ export type GetMediaData = {
2889
3077
  body?: never;
2890
3078
  path: {
2891
3079
  /**
2892
- * Media ID
3080
+ * Media public ID
2893
3081
  */
2894
- id: number;
3082
+ id: string;
2895
3083
  };
2896
3084
  query?: {
2897
3085
  /**
@@ -2939,9 +3127,9 @@ export type UpdateMediaData = {
2939
3127
  body: MediaUpdateRequest;
2940
3128
  path: {
2941
3129
  /**
2942
- * Media ID
3130
+ * Media public ID
2943
3131
  */
2944
- id: number;
3132
+ id: string;
2945
3133
  };
2946
3134
  query?: never;
2947
3135
  url: '/v1/media/{id}';
@@ -2984,9 +3172,9 @@ export type ListEpisodesData = {
2984
3172
  body?: never;
2985
3173
  path: {
2986
3174
  /**
2987
- * ID of the media
3175
+ * Public ID of the media
2988
3176
  */
2989
- mediaId: number;
3177
+ mediaId: string;
2990
3178
  };
2991
3179
  query?: {
2992
3180
  /**
@@ -3038,9 +3226,9 @@ export type CreateEpisodeData = {
3038
3226
  body: EpisodeCreateRequest;
3039
3227
  path: {
3040
3228
  /**
3041
- * ID of the media
3229
+ * Public ID of the media
3042
3230
  */
3043
- mediaId: number;
3231
+ mediaId: string;
3044
3232
  };
3045
3233
  query?: never;
3046
3234
  url: '/v1/media/{mediaId}/episodes';
@@ -3087,9 +3275,9 @@ export type DeleteEpisodeData = {
3087
3275
  body?: never;
3088
3276
  path: {
3089
3277
  /**
3090
- * ID of the media
3278
+ * Public ID of the media
3091
3279
  */
3092
- mediaId: number;
3280
+ mediaId: string;
3093
3281
  /**
3094
3282
  * Episode number
3095
3283
  */
@@ -3136,9 +3324,9 @@ export type GetEpisodeData = {
3136
3324
  body?: never;
3137
3325
  path: {
3138
3326
  /**
3139
- * ID of the media
3327
+ * Public ID of the media
3140
3328
  */
3141
- mediaId: number;
3329
+ mediaId: string;
3142
3330
  /**
3143
3331
  * Episode number
3144
3332
  */
@@ -3185,9 +3373,9 @@ export type UpdateEpisodeData = {
3185
3373
  body: EpisodeUpdateRequest;
3186
3374
  path: {
3187
3375
  /**
3188
- * ID of the media
3376
+ * Public ID of the media
3189
3377
  */
3190
- mediaId: number;
3378
+ mediaId: string;
3191
3379
  /**
3192
3380
  * Episode number
3193
3381
  */
@@ -3234,9 +3422,9 @@ export type ListSegmentsData = {
3234
3422
  body?: never;
3235
3423
  path: {
3236
3424
  /**
3237
- * ID of the media
3425
+ * Public ID of the media
3238
3426
  */
3239
- mediaId: number;
3427
+ mediaId: string;
3240
3428
  /**
3241
3429
  * Episode number
3242
3430
  */
@@ -3298,9 +3486,9 @@ export type CreateSegmentData = {
3298
3486
  body: SegmentCreateRequest;
3299
3487
  path: {
3300
3488
  /**
3301
- * ID of the media
3489
+ * Public ID of the media
3302
3490
  */
3303
- mediaId: number;
3491
+ mediaId: string;
3304
3492
  /**
3305
3493
  * Episode number
3306
3494
  */
@@ -3347,13 +3535,71 @@ export type CreateSegmentResponses = {
3347
3535
  201: SegmentInternal;
3348
3536
  };
3349
3537
  export type CreateSegmentResponse = CreateSegmentResponses[keyof CreateSegmentResponses];
3538
+ export type CreateSegmentsBatchData = {
3539
+ body: SegmentBatchCreateRequest;
3540
+ path: {
3541
+ /**
3542
+ * Public ID of the media
3543
+ */
3544
+ mediaId: string;
3545
+ /**
3546
+ * Episode number
3547
+ */
3548
+ episodeNumber: number;
3549
+ };
3550
+ query?: never;
3551
+ url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/batch';
3552
+ };
3553
+ export type CreateSegmentsBatchErrors = {
3554
+ /**
3555
+ * Bad Request
3556
+ */
3557
+ 400: Error400;
3558
+ /**
3559
+ * Unauthorized (API key)
3560
+ */
3561
+ 401: Error401;
3562
+ /**
3563
+ * Forbidden
3564
+ */
3565
+ 403: Error403;
3566
+ /**
3567
+ * Not Found
3568
+ */
3569
+ 404: Error404;
3570
+ /**
3571
+ * Too Many Requests
3572
+ */
3573
+ 429: Error429;
3574
+ /**
3575
+ * Internal Server Error
3576
+ */
3577
+ 500: Error500;
3578
+ };
3579
+ export type CreateSegmentsBatchError = CreateSegmentsBatchErrors[keyof CreateSegmentsBatchErrors];
3580
+ export type CreateSegmentsBatchResponses = {
3581
+ /**
3582
+ * Batch segment creation result
3583
+ */
3584
+ 201: {
3585
+ /**
3586
+ * Number of segments successfully created
3587
+ */
3588
+ created: number;
3589
+ /**
3590
+ * Number of segments skipped due to duplicate UUIDs
3591
+ */
3592
+ skipped: number;
3593
+ };
3594
+ };
3595
+ export type CreateSegmentsBatchResponse = CreateSegmentsBatchResponses[keyof CreateSegmentsBatchResponses];
3350
3596
  export type DeleteSegmentData = {
3351
3597
  body?: never;
3352
3598
  path: {
3353
3599
  /**
3354
- * ID of the media
3600
+ * Public ID of the media
3355
3601
  */
3356
- mediaId: number;
3602
+ mediaId: string;
3357
3603
  /**
3358
3604
  * Episode number
3359
3605
  */
@@ -3404,9 +3650,9 @@ export type GetSegmentData = {
3404
3650
  body?: never;
3405
3651
  path: {
3406
3652
  /**
3407
- * ID of the media
3653
+ * Public ID of the media
3408
3654
  */
3409
- mediaId: number;
3655
+ mediaId: string;
3410
3656
  /**
3411
3657
  * Episode number
3412
3658
  */
@@ -3457,9 +3703,9 @@ export type UpdateSegmentData = {
3457
3703
  body: SegmentUpdateRequest;
3458
3704
  path: {
3459
3705
  /**
3460
- * ID of the media
3706
+ * Public ID of the media
3461
3707
  */
3462
- mediaId: number;
3708
+ mediaId: string;
3463
3709
  /**
3464
3710
  * Episode number
3465
3711
  */
@@ -3695,8 +3941,8 @@ export type ListUserActivityResponses = {
3695
3941
  export type ListUserActivityResponse = ListUserActivityResponses[keyof ListUserActivityResponses];
3696
3942
  export type TrackUserActivityData = {
3697
3943
  body: {
3698
- activityType: 'SEGMENT_PLAY';
3699
- segmentUuid?: string;
3944
+ activityType: 'SEGMENT_PLAY' | 'SHARE';
3945
+ segmentId?: number;
3700
3946
  mediaId?: number;
3701
3947
  mediaName?: string;
3702
3948
  japaneseText?: string;
@@ -3735,10 +3981,6 @@ export type GetUserActivityHeatmapData = {
3735
3981
  * Number of days to include in the heatmap
3736
3982
  */
3737
3983
  days?: number;
3738
- /**
3739
- * Filter by activity type
3740
- */
3741
- activityType?: ActivityType;
3742
3984
  };
3743
3985
  url: '/v1/user/activity/heatmap';
3744
3986
  };
@@ -3759,10 +4001,10 @@ export type GetUserActivityHeatmapResponses = {
3759
4001
  */
3760
4002
  200: {
3761
4003
  /**
3762
- * Map of YYYY-MM-DD date strings to activity activityByDay
4004
+ * Map of YYYY-MM-DD date strings to per-type activity counts
3763
4005
  */
3764
4006
  activityByDay: {
3765
- [key: string]: number;
4007
+ [key: string]: HeatmapDayCounts;
3766
4008
  };
3767
4009
  };
3768
4010
  };
@@ -3798,6 +4040,7 @@ export type GetUserActivityStatsResponses = {
3798
4040
  totalExports: number;
3799
4041
  totalPlays: number;
3800
4042
  totalListAdds: number;
4043
+ totalShares: number;
3801
4044
  topMedia: Array<{
3802
4045
  mediaId: number;
3803
4046
  count: number;
@@ -4072,9 +4315,9 @@ export type DeleteCollectionData = {
4072
4315
  body?: never;
4073
4316
  path: {
4074
4317
  /**
4075
- * Collection ID
4318
+ * Collection public ID
4076
4319
  */
4077
- id: number;
4320
+ id: string;
4078
4321
  };
4079
4322
  query?: never;
4080
4323
  url: '/v1/collections/{id}';
@@ -4117,9 +4360,9 @@ export type GetCollectionData = {
4117
4360
  body?: never;
4118
4361
  path: {
4119
4362
  /**
4120
- * Collection ID
4363
+ * Collection public ID
4121
4364
  */
4122
- id: number;
4365
+ id: string;
4123
4366
  };
4124
4367
  query?: {
4125
4368
  /**
@@ -4174,9 +4417,9 @@ export type UpdateCollectionData = {
4174
4417
  };
4175
4418
  path: {
4176
4419
  /**
4177
- * Collection ID
4420
+ * Collection public ID
4178
4421
  */
4179
- id: number;
4422
+ id: string;
4180
4423
  };
4181
4424
  query?: never;
4182
4425
  url: '/v1/collections/{id}';
@@ -4218,9 +4461,9 @@ export type UpdateCollectionResponse = UpdateCollectionResponses[keyof UpdateCol
4218
4461
  export type AddSegmentToCollectionData = {
4219
4462
  body: {
4220
4463
  /**
4221
- * UUID of the segment to add
4464
+ * Public ID or UUID of the segment to add
4222
4465
  */
4223
- segmentUuid: string;
4466
+ segmentId: string;
4224
4467
  /**
4225
4468
  * Optional annotation
4226
4469
  */
@@ -4228,9 +4471,9 @@ export type AddSegmentToCollectionData = {
4228
4471
  };
4229
4472
  path: {
4230
4473
  /**
4231
- * Collection ID
4474
+ * Collection public ID
4232
4475
  */
4233
- id: number;
4476
+ id: string;
4234
4477
  };
4235
4478
  query?: never;
4236
4479
  url: '/v1/collections/{id}/segments';
@@ -4273,16 +4516,16 @@ export type RemoveSegmentFromCollectionData = {
4273
4516
  body?: never;
4274
4517
  path: {
4275
4518
  /**
4276
- * Collection ID
4519
+ * Collection public ID
4277
4520
  */
4278
- id: number;
4521
+ id: string;
4279
4522
  /**
4280
- * Segment UUID
4523
+ * Segment ID
4281
4524
  */
4282
- uuid: string;
4525
+ segmentId: number;
4283
4526
  };
4284
4527
  query?: never;
4285
- url: '/v1/collections/{id}/segments/{uuid}';
4528
+ url: '/v1/collections/{id}/segments/{segmentId}';
4286
4529
  };
4287
4530
  export type RemoveSegmentFromCollectionErrors = {
4288
4531
  /**
@@ -4331,16 +4574,16 @@ export type UpdateCollectionSegmentData = {
4331
4574
  };
4332
4575
  path: {
4333
4576
  /**
4334
- * Collection ID
4577
+ * Collection public ID
4335
4578
  */
4336
- id: number;
4579
+ id: string;
4337
4580
  /**
4338
- * Segment UUID
4581
+ * Segment ID
4339
4582
  */
4340
- uuid: string;
4583
+ segmentId: number;
4341
4584
  };
4342
4585
  query?: never;
4343
- url: '/v1/collections/{id}/segments/{uuid}';
4586
+ url: '/v1/collections/{id}/segments/{segmentId}';
4344
4587
  };
4345
4588
  export type UpdateCollectionSegmentErrors = {
4346
4589
  /**
@@ -4380,9 +4623,9 @@ export type SearchCollectionSegmentsData = {
4380
4623
  body?: never;
4381
4624
  path: {
4382
4625
  /**
4383
- * Collection ID
4626
+ * Collection public ID
4384
4627
  */
4385
- id: number;
4628
+ id: string;
4386
4629
  };
4387
4630
  query?: {
4388
4631
  /**
@@ -4434,9 +4677,9 @@ export type GetCollectionStatsData = {
4434
4677
  body?: never;
4435
4678
  path: {
4436
4679
  /**
4437
- * Collection ID
4680
+ * Collection public ID
4438
4681
  */
4439
- id: number;
4682
+ id: string;
4440
4683
  };
4441
4684
  query?: never;
4442
4685
  url: '/v1/collections/{id}/stats';
@@ -4483,7 +4726,7 @@ export type GetAdminDashboardData = {
4483
4726
  };
4484
4727
  export type GetAdminDashboardErrors = {
4485
4728
  /**
4486
- * Unauthorized (API key)
4729
+ * Unauthorized (session)
4487
4730
  */
4488
4731
  401: Error401;
4489
4732
  /**
@@ -4575,7 +4818,7 @@ export type GetAdminHealthData = {
4575
4818
  };
4576
4819
  export type GetAdminHealthErrors = {
4577
4820
  /**
4578
- * Unauthorized (API key)
4821
+ * Unauthorized (session)
4579
4822
  */
4580
4823
  401: Error401;
4581
4824
  /**
@@ -4637,7 +4880,7 @@ export type TriggerReindexErrors = {
4637
4880
  */
4638
4881
  400: Error400;
4639
4882
  /**
4640
- * Unauthorized (API key)
4883
+ * Unauthorized (session)
4641
4884
  */
4642
4885
  401: Error401;
4643
4886
  /**
@@ -4673,7 +4916,7 @@ export type ListAdminQueueStatsErrors = {
4673
4916
  */
4674
4917
  400: Error400;
4675
4918
  /**
4676
- * Unauthorized (API key)
4919
+ * Unauthorized (session)
4677
4920
  */
4678
4921
  401: Error401;
4679
4922
  /**
@@ -4724,7 +4967,7 @@ export type GetAdminQueueErrors = {
4724
4967
  */
4725
4968
  400: Error400;
4726
4969
  /**
4727
- * Unauthorized (API key)
4970
+ * Unauthorized (session)
4728
4971
  */
4729
4972
  401: Error401;
4730
4973
  /**
@@ -4809,7 +5052,7 @@ export type ListAdminQueueFailedErrors = {
4809
5052
  */
4810
5053
  400: Error400;
4811
5054
  /**
4812
- * Unauthorized (API key)
5055
+ * Unauthorized (session)
4813
5056
  */
4814
5057
  401: Error401;
4815
5058
  /**
@@ -4867,7 +5110,7 @@ export type RetryAdminQueueFailedErrors = {
4867
5110
  */
4868
5111
  400: Error400;
4869
5112
  /**
4870
- * Unauthorized (API key)
5113
+ * Unauthorized (session)
4871
5114
  */
4872
5115
  401: Error401;
4873
5116
  /**
@@ -4915,7 +5158,7 @@ export type PurgeAdminQueueFailedErrors = {
4915
5158
  */
4916
5159
  400: Error400;
4917
5160
  /**
4918
- * Unauthorized (API key)
5161
+ * Unauthorized (session)
4919
5162
  */
4920
5163
  401: Error401;
4921
5164
  /**
@@ -4953,10 +5196,6 @@ export type ClearAdminImpersonationData = {
4953
5196
  url: '/v1/admin/impersonation';
4954
5197
  };
4955
5198
  export type ClearAdminImpersonationErrors = {
4956
- /**
4957
- * Unauthorized (session)
4958
- */
4959
- 401: Error401;
4960
5199
  /**
4961
5200
  * Forbidden
4962
5201
  */
@@ -4996,10 +5235,6 @@ export type ImpersonateAdminUserErrors = {
4996
5235
  * Bad Request
4997
5236
  */
4998
5237
  400: Error400;
4999
- /**
5000
- * Unauthorized (session)
5001
- */
5002
- 401: Error401;
5003
5238
  /**
5004
5239
  * Forbidden
5005
5240
  */
@@ -5065,9 +5300,9 @@ export type ListAdminReportsData = {
5065
5300
  */
5066
5301
  'target.episodeNumber'?: number;
5067
5302
  /**
5068
- * Filter by target segment UUID
5303
+ * Filter by target segment ID
5069
5304
  */
5070
- 'target.segmentUuid'?: string;
5305
+ 'target.segmentId'?: number;
5071
5306
  /**
5072
5307
  * Filter by audit run ID
5073
5308
  */
@@ -5077,7 +5312,7 @@ export type ListAdminReportsData = {
5077
5312
  };
5078
5313
  export type ListAdminReportsErrors = {
5079
5314
  /**
5080
- * Unauthorized (API key)
5315
+ * Unauthorized (session)
5081
5316
  */
5082
5317
  401: Error401;
5083
5318
  /**
@@ -5118,7 +5353,7 @@ export type UpdateAdminReportErrors = {
5118
5353
  */
5119
5354
  400: Error400;
5120
5355
  /**
5121
- * Unauthorized (API key)
5356
+ * Unauthorized (session)
5122
5357
  */
5123
5358
  401: Error401;
5124
5359
  /**
@@ -5154,7 +5389,7 @@ export type ListAdminMediaAuditsData = {
5154
5389
  };
5155
5390
  export type ListAdminMediaAuditsErrors = {
5156
5391
  /**
5157
- * Unauthorized (API key)
5392
+ * Unauthorized (session)
5158
5393
  */
5159
5394
  401: Error401;
5160
5395
  /**
@@ -5206,7 +5441,7 @@ export type UpdateAdminMediaAuditErrors = {
5206
5441
  */
5207
5442
  400: Error400;
5208
5443
  /**
5209
- * Unauthorized (API key)
5444
+ * Unauthorized (session)
5210
5445
  */
5211
5446
  401: Error401;
5212
5447
  /**
@@ -5252,7 +5487,7 @@ export type RunAdminMediaAuditData = {
5252
5487
  };
5253
5488
  export type RunAdminMediaAuditErrors = {
5254
5489
  /**
5255
- * Unauthorized (API key)
5490
+ * Unauthorized (session)
5256
5491
  */
5257
5492
  401: Error401;
5258
5493
  /**
@@ -5301,7 +5536,7 @@ export type ListAdminMediaAuditRunsData = {
5301
5536
  };
5302
5537
  export type ListAdminMediaAuditRunsErrors = {
5303
5538
  /**
5304
- * Unauthorized (API key)
5539
+ * Unauthorized (session)
5305
5540
  */
5306
5541
  401: Error401;
5307
5542
  /**
@@ -5341,7 +5576,7 @@ export type GetAdminMediaAuditRunData = {
5341
5576
  };
5342
5577
  export type GetAdminMediaAuditRunErrors = {
5343
5578
  /**
5344
- * Unauthorized (API key)
5579
+ * Unauthorized (session)
5345
5580
  */
5346
5581
  401: Error401;
5347
5582
  /**
@@ -5372,4 +5607,80 @@ export type GetAdminMediaAuditRunResponses = {
5372
5607
  };
5373
5608
  };
5374
5609
  export type GetAdminMediaAuditRunResponse = GetAdminMediaAuditRunResponses[keyof GetAdminMediaAuditRunResponses];
5610
+ export type GetAnnouncementData = {
5611
+ body?: never;
5612
+ path?: never;
5613
+ query?: never;
5614
+ url: '/v1/admin/announcement';
5615
+ };
5616
+ export type GetAnnouncementErrors = {
5617
+ /**
5618
+ * Too Many Requests
5619
+ */
5620
+ 429: Error429;
5621
+ /**
5622
+ * Internal Server Error
5623
+ */
5624
+ 500: Error500;
5625
+ };
5626
+ export type GetAnnouncementError = GetAnnouncementErrors[keyof GetAnnouncementErrors];
5627
+ export type GetAnnouncementResponses = {
5628
+ /**
5629
+ * OK
5630
+ */
5631
+ 200: {
5632
+ message: string;
5633
+ type: 'info' | 'warning' | 'maintenance';
5634
+ active: boolean;
5635
+ };
5636
+ /**
5637
+ * No announcement set
5638
+ */
5639
+ 204: void;
5640
+ };
5641
+ export type GetAnnouncementResponse = GetAnnouncementResponses[keyof GetAnnouncementResponses];
5642
+ export type UpdateAnnouncementData = {
5643
+ body: {
5644
+ message: string;
5645
+ type: 'info' | 'warning' | 'maintenance';
5646
+ active: boolean;
5647
+ };
5648
+ path?: never;
5649
+ query?: never;
5650
+ url: '/v1/admin/announcement';
5651
+ };
5652
+ export type UpdateAnnouncementErrors = {
5653
+ /**
5654
+ * Bad Request
5655
+ */
5656
+ 400: Error400;
5657
+ /**
5658
+ * Unauthorized (session)
5659
+ */
5660
+ 401: Error401;
5661
+ /**
5662
+ * Forbidden
5663
+ */
5664
+ 403: Error403;
5665
+ /**
5666
+ * Too Many Requests
5667
+ */
5668
+ 429: Error429;
5669
+ /**
5670
+ * Internal Server Error
5671
+ */
5672
+ 500: Error500;
5673
+ };
5674
+ export type UpdateAnnouncementError = UpdateAnnouncementErrors[keyof UpdateAnnouncementErrors];
5675
+ export type UpdateAnnouncementResponses = {
5676
+ /**
5677
+ * Announcement updated
5678
+ */
5679
+ 200: {
5680
+ message: string;
5681
+ type: 'info' | 'warning' | 'maintenance';
5682
+ active: boolean;
5683
+ };
5684
+ };
5685
+ export type UpdateAnnouncementResponse = UpdateAnnouncementResponses[keyof UpdateAnnouncementResponses];
5375
5686
  //# sourceMappingURL=types.gen.d.ts.map