@tracearr/shared 2.8.3 → 2.9.0

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/dist/schemas.d.ts CHANGED
@@ -39,16 +39,35 @@ declare function validateDateOrder(data: {
39
39
  startDate?: string;
40
40
  endDate?: string;
41
41
  }): boolean;
42
+ /**
43
+ * Refinement: If dates provided, startDate must not be after endDate. For endpoints that include
44
+ * the end day, where equal dates mean that one day.
45
+ */
46
+ declare function validateDateOrderInclusive(data: {
47
+ startDate?: string;
48
+ endDate?: string;
49
+ }): boolean;
42
50
  /** Standard date validation refinements for stats queries */
43
51
  export declare const dateValidationRefinements: {
44
52
  customPeriodRequiresDates: {
45
53
  refinement: typeof requireDatesForCustomPeriod;
46
54
  message: string;
47
55
  };
56
+ datesTogether: {
57
+ refinement: (data: {
58
+ startDate?: string;
59
+ endDate?: string;
60
+ }) => boolean;
61
+ message: string;
62
+ };
48
63
  startBeforeEnd: {
49
64
  refinement: typeof validateDateOrder;
50
65
  message: string;
51
66
  };
67
+ startNotAfterEnd: {
68
+ refinement: typeof validateDateOrderInclusive;
69
+ message: string;
70
+ };
52
71
  };
53
72
  export declare const uuidSchema: z.ZodUUID;
54
73
  export declare const serverIdsQuerySchema: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
@@ -215,10 +234,12 @@ export declare const mergeSuggestionPairParamSchema: z.ZodObject<{
215
234
  export declare const splitServerUserParamSchema: z.ZodObject<{
216
235
  id: z.ZodUUID;
217
236
  }, z.core.$strip>;
218
- export declare const USER_SORT_FIELDS: readonly ['username', 'trustScore', 'joinedAt', 'lastActivityAt'];
237
+ export declare const USER_SORT_FIELDS: readonly ['username', 'trustScore', 'joinedAt', 'lastActivityAt', 'role', 'pendingViolations'];
219
238
  export declare const userSortFieldSchema: z.ZodEnum<{
220
239
  joinedAt: "joinedAt";
221
240
  lastActivityAt: "lastActivityAt";
241
+ pendingViolations: "pendingViolations";
242
+ role: "role";
222
243
  trustScore: "trustScore";
223
244
  username: "username";
224
245
  }>;
@@ -243,12 +264,25 @@ export declare const userRosterFilterSchema: z.ZodObject<{
243
264
  joinedBefore: z.ZodOptional<z.ZodISODate>;
244
265
  activeAfter: z.ZodOptional<z.ZodISODate>;
245
266
  activeBefore: z.ZodOptional<z.ZodISODate>;
267
+ role: z.ZodOptional<z.ZodEnum<{
268
+ admin: "admin";
269
+ member: "member";
270
+ owner: "owner";
271
+ }>>;
272
+ signIn: z.ZodOptional<z.ZodEnum<{
273
+ allow: "allow";
274
+ block: "block";
275
+ default: "default";
276
+ }>>;
277
+ pendingOnly: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
246
278
  }, z.core.$strip>;
247
279
  export type UserRosterFilters = z.infer<typeof userRosterFilterSchema>;
248
280
  export declare const userListQuerySchema: z.ZodObject<{
249
281
  orderBy: z.ZodDefault<z.ZodEnum<{
250
282
  joinedAt: "joinedAt";
251
283
  lastActivityAt: "lastActivityAt";
284
+ pendingViolations: "pendingViolations";
285
+ role: "role";
252
286
  trustScore: "trustScore";
253
287
  username: "username";
254
288
  }>>;
@@ -268,6 +302,17 @@ export declare const userListQuerySchema: z.ZodObject<{
268
302
  joinedBefore: z.ZodOptional<z.ZodISODate>;
269
303
  activeAfter: z.ZodOptional<z.ZodISODate>;
270
304
  activeBefore: z.ZodOptional<z.ZodISODate>;
305
+ role: z.ZodOptional<z.ZodEnum<{
306
+ admin: "admin";
307
+ member: "member";
308
+ owner: "owner";
309
+ }>>;
310
+ signIn: z.ZodOptional<z.ZodEnum<{
311
+ allow: "allow";
312
+ block: "block";
313
+ default: "default";
314
+ }>>;
315
+ pendingOnly: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
271
316
  }, z.core.$strip>;
272
317
  export declare const bulkResetTrustBodySchema: z.ZodObject<{
273
318
  ids: z.ZodOptional<z.ZodArray<z.ZodUUID>>;
@@ -283,6 +328,17 @@ export declare const bulkResetTrustBodySchema: z.ZodObject<{
283
328
  joinedBefore: z.ZodOptional<z.ZodISODate>;
284
329
  activeAfter: z.ZodOptional<z.ZodISODate>;
285
330
  activeBefore: z.ZodOptional<z.ZodISODate>;
331
+ role: z.ZodOptional<z.ZodEnum<{
332
+ admin: "admin";
333
+ member: "member";
334
+ owner: "owner";
335
+ }>>;
336
+ signIn: z.ZodOptional<z.ZodEnum<{
337
+ allow: "allow";
338
+ block: "block";
339
+ default: "default";
340
+ }>>;
341
+ pendingOnly: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
286
342
  }, z.core.$strip>>;
287
343
  }, z.core.$strip>;
288
344
  export declare const sessionQuerySchema: z.ZodObject<{
@@ -558,6 +614,96 @@ export declare const statsQuerySchema: z.ZodObject<{
558
614
  serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
559
615
  timezone: z.ZodOptional<z.ZodString>;
560
616
  }, z.core.$strip>;
617
+ export declare const PLAYS_MEDIA_GROUPS: readonly ['movie', 'show', 'music'];
618
+ export type PlaysMediaGroup = (typeof PLAYS_MEDIA_GROUPS)[number];
619
+ export declare const playsBreakdownQuerySchema: z.ZodObject<{
620
+ period: z.ZodDefault<z.ZodEnum<{
621
+ all: "all";
622
+ custom: "custom";
623
+ day: "day";
624
+ month: "month";
625
+ week: "week";
626
+ year: "year";
627
+ }>>;
628
+ startDate: z.ZodOptional<z.ZodISODateTime>;
629
+ endDate: z.ZodOptional<z.ZodISODateTime>;
630
+ serverId: z.ZodOptional<z.ZodUUID>;
631
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
632
+ timezone: z.ZodOptional<z.ZodString>;
633
+ groupBy: z.ZodOptional<z.ZodLiteral<"mediaType">>;
634
+ }, z.core.$strip>;
635
+ export declare const playsQuerySchema: z.ZodObject<{
636
+ period: z.ZodDefault<z.ZodEnum<{
637
+ all: "all";
638
+ custom: "custom";
639
+ day: "day";
640
+ month: "month";
641
+ week: "week";
642
+ year: "year";
643
+ }>>;
644
+ startDate: z.ZodOptional<z.ZodISODateTime>;
645
+ endDate: z.ZodOptional<z.ZodISODateTime>;
646
+ serverId: z.ZodOptional<z.ZodUUID>;
647
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
648
+ timezone: z.ZodOptional<z.ZodString>;
649
+ groupBy: z.ZodOptional<z.ZodLiteral<"mediaType">>;
650
+ mediaType: z.ZodOptional<z.ZodEnum<{
651
+ episode: "episode";
652
+ movie: "movie";
653
+ }>>;
654
+ }, z.core.$strip>;
655
+ export declare const PEOPLE_RANKS: readonly ['plays', 'hours', 'data', 'transcodes', 'requests', 'lastSeen'];
656
+ export declare const peopleRankSchema: z.ZodEnum<{
657
+ data: "data";
658
+ hours: "hours";
659
+ lastSeen: "lastSeen";
660
+ plays: "plays";
661
+ requests: "requests";
662
+ transcodes: "transcodes";
663
+ }>;
664
+ export type PeopleRank = z.infer<typeof peopleRankSchema>;
665
+ export declare const peopleQuerySchema: z.ZodObject<{
666
+ period: z.ZodDefault<z.ZodEnum<{
667
+ all: "all";
668
+ custom: "custom";
669
+ day: "day";
670
+ month: "month";
671
+ week: "week";
672
+ year: "year";
673
+ }>>;
674
+ startDate: z.ZodOptional<z.ZodISODateTime>;
675
+ endDate: z.ZodOptional<z.ZodISODateTime>;
676
+ serverId: z.ZodOptional<z.ZodUUID>;
677
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
678
+ timezone: z.ZodOptional<z.ZodString>;
679
+ rank: z.ZodDefault<z.ZodEnum<{
680
+ data: "data";
681
+ hours: "hours";
682
+ lastSeen: "lastSeen";
683
+ plays: "plays";
684
+ requests: "requests";
685
+ transcodes: "transcodes";
686
+ }>>;
687
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
688
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
689
+ search: z.ZodOptional<z.ZodString>;
690
+ }, z.core.$strip>;
691
+ export declare const userRangeStatsQuerySchema: z.ZodObject<{
692
+ period: z.ZodDefault<z.ZodEnum<{
693
+ all: "all";
694
+ custom: "custom";
695
+ day: "day";
696
+ month: "month";
697
+ week: "week";
698
+ year: "year";
699
+ }>>;
700
+ startDate: z.ZodOptional<z.ZodISODateTime>;
701
+ endDate: z.ZodOptional<z.ZodISODateTime>;
702
+ serverId: z.ZodOptional<z.ZodUUID>;
703
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
704
+ timezone: z.ZodOptional<z.ZodString>;
705
+ scope: z.ZodOptional<z.ZodLiteral<"identity">>;
706
+ }, z.core.$strip>;
561
707
  export declare const locationStatsQuerySchema: z.ZodObject<{
562
708
  period: z.ZodDefault<z.ZodEnum<{
563
709
  all: "all";
@@ -845,7 +991,96 @@ export declare const libraryGrowthQuerySchema: z.ZodObject<{
845
991
  endDate: z.ZodOptional<z.ZodISODateTime>;
846
992
  timezone: z.ZodOptional<z.ZodString>;
847
993
  }, z.core.$strip>;
994
+ export declare const LIBRARY_MEDIA_TYPES: readonly ['movie', 'show', 'artist'];
995
+ export declare const libraryMediaTypeSchema: z.ZodEnum<{
996
+ artist: "artist";
997
+ movie: "movie";
998
+ show: "show";
999
+ }>;
1000
+ export type LibraryMediaType = z.infer<typeof libraryMediaTypeSchema>;
1001
+ /** A media type picker value; 'all' is for pages that can also show every type at once. */
1002
+ export type MediaTypeOption = LibraryMediaType | 'all';
1003
+ export declare const genresQuerySchema: z.ZodObject<{
1004
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1005
+ endDate: z.ZodOptional<z.ZodISODateTime>;
1006
+ serverId: z.ZodOptional<z.ZodUUID>;
1007
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1008
+ timezone: z.ZodOptional<z.ZodString>;
1009
+ type: z.ZodDefault<z.ZodEnum<{
1010
+ artist: "artist";
1011
+ movie: "movie";
1012
+ show: "show";
1013
+ }>>;
1014
+ period: z.ZodDefault<z.ZodEnum<{
1015
+ all: "all";
1016
+ custom: "custom";
1017
+ day: "day";
1018
+ month: "month";
1019
+ week: "week";
1020
+ year: "year";
1021
+ }>>;
1022
+ }, z.core.$strip>;
1023
+ export declare const genreDetailQuerySchema: z.ZodObject<{
1024
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1025
+ endDate: z.ZodOptional<z.ZodISODateTime>;
1026
+ serverId: z.ZodOptional<z.ZodUUID>;
1027
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1028
+ timezone: z.ZodOptional<z.ZodString>;
1029
+ type: z.ZodDefault<z.ZodEnum<{
1030
+ artist: "artist";
1031
+ movie: "movie";
1032
+ show: "show";
1033
+ }>>;
1034
+ period: z.ZodDefault<z.ZodEnum<{
1035
+ all: "all";
1036
+ custom: "custom";
1037
+ day: "day";
1038
+ month: "month";
1039
+ week: "week";
1040
+ year: "year";
1041
+ }>>;
1042
+ }, z.core.$strip>;
1043
+ export declare const catalogQuerySchema: z.ZodObject<{
1044
+ type: z.ZodEnum<{
1045
+ artist: "artist";
1046
+ movie: "movie";
1047
+ show: "show";
1048
+ }>;
1049
+ serverId: z.ZodOptional<z.ZodUUID>;
1050
+ serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1051
+ resolution: z.ZodOptional<z.ZodString>;
1052
+ genre: z.ZodOptional<z.ZodString>;
1053
+ yearFrom: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1054
+ yearTo: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1055
+ watched: z.ZodOptional<z.ZodEnum<{
1056
+ partial: "partial";
1057
+ unwatched: "unwatched";
1058
+ watched: "watched";
1059
+ }>>;
1060
+ lens: z.ZodDefault<z.ZodUnion<readonly [z.ZodUUID, z.ZodLiteral<"all">]>>;
1061
+ search: z.ZodOptional<z.ZodString>;
1062
+ sort: z.ZodDefault<z.ZodEnum<{
1063
+ added: "added";
1064
+ plays: "plays";
1065
+ title: "title";
1066
+ viewers: "viewers";
1067
+ watch_time: "watch_time";
1068
+ year: "year";
1069
+ }>>;
1070
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1071
+ pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1072
+ libraryKey: z.ZodOptional<z.ZodString>;
1073
+ hdr: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
1074
+ atmos: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>, z.ZodTransform<boolean, string | boolean>>>;
1075
+ sizeGbMin: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1076
+ sizeGbMax: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1077
+ videoCodec: z.ZodOptional<z.ZodString>;
1078
+ audioCodec: z.ZodOptional<z.ZodString>;
1079
+ audioChannels: z.ZodOptional<z.ZodString>;
1080
+ }, z.core.$strip>;
848
1081
  export declare const libraryQualityQuerySchema: z.ZodObject<{
1082
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1083
+ endDate: z.ZodOptional<z.ZodISODateTime>;
849
1084
  serverId: z.ZodOptional<z.ZodUUID>;
850
1085
  period: z.ZodDefault<z.ZodEnum<{
851
1086
  "1y": "1y";
@@ -856,12 +1091,14 @@ export declare const libraryQualityQuerySchema: z.ZodObject<{
856
1091
  }>>;
857
1092
  mediaType: z.ZodDefault<z.ZodEnum<{
858
1093
  all: "all";
859
- movies: "movies";
860
- shows: "shows";
1094
+ movie: "movie";
1095
+ show: "show";
861
1096
  }>>;
862
1097
  timezone: z.ZodOptional<z.ZodString>;
863
1098
  }, z.core.$strip>;
864
1099
  export declare const libraryStorageQuerySchema: z.ZodObject<{
1100
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1101
+ endDate: z.ZodOptional<z.ZodISODateTime>;
865
1102
  serverId: z.ZodOptional<z.ZodUUID>;
866
1103
  serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
867
1104
  libraryId: z.ZodOptional<z.ZodUUID>;
@@ -1026,6 +1263,8 @@ export declare const libraryCompletionQuerySchema: z.ZodObject<{
1026
1263
  pageSize: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1027
1264
  }, z.core.$strip>;
1028
1265
  export declare const topContentQuerySchema: z.ZodObject<{
1266
+ startDate: z.ZodOptional<z.ZodISODateTime>;
1267
+ endDate: z.ZodOptional<z.ZodISODateTime>;
1029
1268
  serverId: z.ZodOptional<z.ZodUUID>;
1030
1269
  serverIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUUID, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodUUID>]>>;
1031
1270
  period: z.ZodDefault<z.ZodEnum<{
@@ -1066,6 +1305,7 @@ export declare const shelvesQuerySchema: z.ZodObject<{
1066
1305
  export type LibraryStatsQueryInput = z.infer<typeof libraryStatsQuerySchema>;
1067
1306
  export type LibraryStatusQueryInput = z.infer<typeof libraryStatusQuerySchema>;
1068
1307
  export type LibraryGrowthQueryInput = z.infer<typeof libraryGrowthQuerySchema>;
1308
+ export type GenresQueryInput = z.infer<typeof genresQuerySchema>;
1069
1309
  export type LibraryQualityQueryInput = z.infer<typeof libraryQualityQuerySchema>;
1070
1310
  export type LibraryStorageQueryInput = z.infer<typeof libraryStorageQuerySchema>;
1071
1311
  export type LibraryDuplicatesQueryInput = z.infer<typeof libraryDuplicatesQuerySchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
package/dist/schemas.js CHANGED
@@ -38,16 +38,34 @@ function validateDateOrder(data) {
38
38
  }
39
39
  return true;
40
40
  }
41
+ /**
42
+ * Refinement: If dates provided, startDate must not be after endDate. For endpoints that include
43
+ * the end day, where equal dates mean that one day.
44
+ */
45
+ function validateDateOrderInclusive(data) {
46
+ if (data.startDate && data.endDate) {
47
+ return new Date(data.startDate) <= new Date(data.endDate);
48
+ }
49
+ return true;
50
+ }
41
51
  /** Standard date validation refinements for stats queries */
42
52
  export const dateValidationRefinements = {
43
53
  customPeriodRequiresDates: {
44
54
  refinement: requireDatesForCustomPeriod,
45
55
  message: 'Custom period requires startDate and endDate',
46
56
  },
57
+ datesTogether: {
58
+ refinement: (data) => !data.startDate === !data.endDate,
59
+ message: 'startDate and endDate go together',
60
+ },
47
61
  startBeforeEnd: {
48
62
  refinement: validateDateOrder,
49
63
  message: 'startDate must be before endDate',
50
64
  },
65
+ startNotAfterEnd: {
66
+ refinement: validateDateOrderInclusive,
67
+ message: 'startDate must not be after endDate',
68
+ },
51
69
  };
52
70
  // ============================================================================
53
71
  // Common Schemas
@@ -266,7 +284,14 @@ export const mergeSuggestionDismissalSchema = z
266
284
  .refine(({ userIds: [a, b] }) => a !== b, 'userIds must name two different identities');
267
285
  export const mergeSuggestionPairParamSchema = z.object({ userA: uuidSchema, userB: uuidSchema });
268
286
  export const splitServerUserParamSchema = z.object({ id: uuidSchema });
269
- export const USER_SORT_FIELDS = ['username', 'trustScore', 'joinedAt', 'lastActivityAt'];
287
+ export const USER_SORT_FIELDS = [
288
+ 'username',
289
+ 'trustScore',
290
+ 'joinedAt',
291
+ 'lastActivityAt',
292
+ 'role',
293
+ 'pendingViolations',
294
+ ];
270
295
  export const userSortFieldSchema = z.enum(USER_SORT_FIELDS);
271
296
  /**
272
297
  * The roster filter set, shared by GET /users and POST /users/bulk/reset-trust.
@@ -297,6 +322,10 @@ export const userRosterFilterSchema = serverIdFilterSchema.extend({
297
322
  joinedBefore: listDateBoundSchema,
298
323
  activeAfter: listDateBoundSchema,
299
324
  activeBefore: listDateBoundSchema,
325
+ role: z.enum(['owner', 'admin', 'member']).optional(),
326
+ signIn: z.enum(['allow', 'default', 'block']).optional(),
327
+ /** Only people with at least one unacknowledged violation on the scoped servers. */
328
+ pendingOnly: booleanStringSchema.optional(),
300
329
  });
301
330
  export const userListQuerySchema = paginationSchema
302
331
  .extend(userRosterFilterSchema.shape)
@@ -503,21 +532,57 @@ export const dashboardQuerySchema = z.object({
503
532
  serverIds: serverIdsQuerySchema,
504
533
  timezone: timezoneSchema,
505
534
  });
506
- export const statsQuerySchema = z
507
- .object({
535
+ const statsQueryObjectSchema = z.object({
508
536
  period: statPeriodSchema.default('week'),
509
537
  startDate: z.iso.datetime().optional(),
510
538
  endDate: z.iso.datetime().optional(),
511
539
  serverId: uuidSchema.optional(),
512
540
  serverIds: serverIdsQuerySchema,
513
541
  timezone: timezoneSchema,
514
- })
542
+ });
543
+ export const statsQuerySchema = statsQueryObjectSchema
515
544
  .refine(dateValidationRefinements.customPeriodRequiresDates.refinement, {
516
545
  message: dateValidationRefinements.customPeriodRequiresDates.message,
517
546
  })
518
547
  .refine(dateValidationRefinements.startBeforeEnd.refinement, {
519
548
  message: dateValidationRefinements.startBeforeEnd.message,
520
549
  });
550
+ export const PLAYS_MEDIA_GROUPS = ['movie', 'show', 'music'];
551
+ // groupBy=mediaType splits an Activity series into one series per media group.
552
+ export const playsBreakdownQuerySchema = statsQuerySchema.safeExtend({
553
+ groupBy: z.literal('mediaType').optional(),
554
+ });
555
+ export const playsQuerySchema = playsBreakdownQuerySchema.safeExtend({
556
+ mediaType: z.enum(['movie', 'episode']).optional(),
557
+ });
558
+ export const PEOPLE_RANKS = [
559
+ 'plays',
560
+ 'hours',
561
+ 'data',
562
+ 'transcodes',
563
+ 'requests',
564
+ 'lastSeen',
565
+ ];
566
+ export const peopleRankSchema = z.enum(PEOPLE_RANKS);
567
+ // Day-aligned windows include the end day, so a one-day custom range has equal dates.
568
+ const dayWindowQuerySchema = statsQueryObjectSchema.refine(dateValidationRefinements.customPeriodRequiresDates.refinement, { message: dateValidationRefinements.customPeriodRequiresDates.message });
569
+ export const peopleQuerySchema = dayWindowQuerySchema
570
+ .safeExtend({
571
+ rank: peopleRankSchema.default('plays'),
572
+ page: paginationSchema.shape.page,
573
+ pageSize: paginationSchema.shape.pageSize,
574
+ search: z.string().trim().min(1).max(100).optional(),
575
+ })
576
+ .refine(dateValidationRefinements.startNotAfterEnd.refinement, {
577
+ message: dateValidationRefinements.startNotAfterEnd.message,
578
+ });
579
+ export const userRangeStatsQuerySchema = dayWindowQuerySchema
580
+ .safeExtend({
581
+ scope: z.literal('identity').optional(),
582
+ })
583
+ .refine(dateValidationRefinements.startNotAfterEnd.refinement, {
584
+ message: dateValidationRefinements.startNotAfterEnd.message,
585
+ });
521
586
  // Location stats with full filtering - uses same period system as statsQuerySchema
522
587
  export const locationStatsQuerySchema = z
523
588
  .object({
@@ -873,24 +938,82 @@ export const libraryGrowthQuerySchema = z
873
938
  endDate: z.iso.datetime().optional(),
874
939
  timezone: timezoneSchema,
875
940
  })
876
- .refine(dateValidationRefinements.startBeforeEnd.refinement, {
877
- message: dateValidationRefinements.startBeforeEnd.message,
878
- });
941
+ .refine(dateValidationRefinements.startNotAfterEnd.refinement, {
942
+ message: dateValidationRefinements.startNotAfterEnd.message,
943
+ });
944
+ export const LIBRARY_MEDIA_TYPES = ['movie', 'show', 'artist'];
945
+ export const libraryMediaTypeSchema = z.enum(LIBRARY_MEDIA_TYPES);
946
+ export const genresQuerySchema = statsQueryObjectSchema
947
+ .extend({
948
+ type: libraryMediaTypeSchema.default('movie'),
949
+ period: statPeriodSchema.default('month'),
950
+ })
951
+ .refine(dateValidationRefinements.customPeriodRequiresDates.refinement, {
952
+ message: dateValidationRefinements.customPeriodRequiresDates.message,
953
+ })
954
+ .refine(dateValidationRefinements.startNotAfterEnd.refinement, {
955
+ message: dateValidationRefinements.startNotAfterEnd.message,
956
+ });
957
+ export const genreDetailQuerySchema = genresQuerySchema;
958
+ /** Sane upper bound for the catalog's size-on-disk filter inputs, in GB. */
959
+ const CATALOG_SIZE_GB_MAX = 10000;
960
+ export const catalogQuerySchema = z.object({
961
+ type: libraryMediaTypeSchema,
962
+ serverId: uuidSchema.optional(),
963
+ serverIds: serverIdsQuerySchema,
964
+ resolution: z.string().optional(),
965
+ genre: z.string().optional(),
966
+ yearFrom: z.coerce.number().int().optional(),
967
+ yearTo: z.coerce.number().int().optional(),
968
+ watched: z.enum(['watched', 'partial', 'unwatched']).optional(),
969
+ lens: z.union([uuidSchema, z.literal('all')]).default('all'),
970
+ search: z.string().max(100).optional(),
971
+ sort: z.enum(['title', 'added', 'year', 'plays', 'watch_time', 'viewers']).default('title'),
972
+ offset: z.coerce.number().int().min(0).default(0),
973
+ pageSize: z.coerce.number().int().min(1).max(100).default(60),
974
+ // `${serverId}:${libraryId}` - a library id is only unique within its server.
975
+ libraryKey: libraryKeySchema.optional(),
976
+ hdr: booleanStringSchema.default(false),
977
+ atmos: booleanStringSchema.default(false),
978
+ sizeGbMin: z.coerce.number().min(0).max(CATALOG_SIZE_GB_MAX).optional(),
979
+ sizeGbMax: z.coerce.number().min(0).max(CATALOG_SIZE_GB_MAX).optional(),
980
+ /** Display names as the codec charts show them ('HEVC', 'EAC3'). */
981
+ videoCodec: z.string().max(50).optional(),
982
+ audioCodec: z.string().max(50).optional(),
983
+ audioChannels: z.string().max(20).optional(),
984
+ });
985
+ // A custom window on a library period endpoint: both dates or neither; with them the period
986
+ // token is ignored.
987
+ const customWindowFields = {
988
+ startDate: z.iso.datetime().optional(),
989
+ endDate: z.iso.datetime().optional(),
990
+ };
991
+ function withCustomWindow(schema) {
992
+ return schema
993
+ .refine(dateValidationRefinements.datesTogether.refinement, {
994
+ message: dateValidationRefinements.datesTogether.message,
995
+ })
996
+ .refine(dateValidationRefinements.startBeforeEnd.refinement, {
997
+ message: dateValidationRefinements.startBeforeEnd.message,
998
+ });
999
+ }
879
1000
  // Library quality evolution query schema
880
- export const libraryQualityQuerySchema = z.object({
1001
+ export const libraryQualityQuerySchema = withCustomWindow(z.object({
881
1002
  serverId: z.uuid().optional(),
882
1003
  period: z.enum(['7d', '30d', '90d', '1y', 'all']).default('30d'),
883
- mediaType: z.enum(['all', 'movies', 'shows']).default('all'),
1004
+ ...customWindowFields,
1005
+ mediaType: z.enum(['all', 'movie', 'show']).default('all'),
884
1006
  timezone: timezoneSchema,
885
- });
1007
+ }));
886
1008
  // Library storage analytics query schema
887
- export const libraryStorageQuerySchema = z.object({
1009
+ export const libraryStorageQuerySchema = withCustomWindow(z.object({
888
1010
  serverId: z.uuid().optional(),
889
1011
  serverIds: serverIdsQuerySchema, // Combined scope so mirror dedup spans servers
890
1012
  libraryId: z.uuid().optional(),
891
1013
  period: z.enum(['7d', '30d', '90d', '1y', 'all']).default('30d'),
1014
+ ...customWindowFields,
892
1015
  timezone: timezoneSchema,
893
- });
1016
+ }));
894
1017
  // Library duplicates query schema (cross-server duplicate detection)
895
1018
  export const libraryDuplicatesQuerySchema = z.object({
896
1019
  serverId: z.uuid().optional(), // Filter to show duplicates involving this server
@@ -912,7 +1035,7 @@ export const libraryStaleQuerySchema = z.object({
912
1035
  serverId: z.uuid().optional(),
913
1036
  serverIds: serverIdsQuerySchema,
914
1037
  libraryId: z.uuid().optional(),
915
- mediaType: z.enum(['movie', 'show', 'artist']).optional(),
1038
+ mediaType: libraryMediaTypeSchema.optional(),
916
1039
  staleDays: z.coerce.number().int().min(1).default(90), // Configurable threshold
917
1040
  category: z.enum(['all', 'never_watched', 'stale']).default('all'),
918
1041
  sortBy: z.enum(['size', 'days_stale', 'title', 'added_at']).default('size'),
@@ -940,7 +1063,7 @@ export const libraryRoiQuerySchema = z.object({
940
1063
  serverId: uuidSchema.optional(),
941
1064
  serverIds: serverIdsQuerySchema,
942
1065
  libraryId: z.string().optional(),
943
- mediaType: z.enum(['movie', 'show', 'artist', 'all']).default('all'),
1066
+ mediaType: z.enum([...LIBRARY_MEDIA_TYPES, 'all']).default('all'),
944
1067
  // Filter by value category
945
1068
  valueCategory: z.enum(['low_value', 'moderate_value', 'high_value', 'all']).default('all'),
946
1069
  // Time range for watch calculations (affects recency weighting)
@@ -993,17 +1116,18 @@ export const libraryCompletionQuerySchema = z.object({
993
1116
  pageSize: z.coerce.number().int().positive().max(100).default(20),
994
1117
  });
995
1118
  // Library top content query schema (for top movies and top shows endpoints)
996
- export const topContentQuerySchema = z.object({
1119
+ export const topContentQuerySchema = withCustomWindow(z.object({
997
1120
  serverId: uuidSchema.optional(),
998
1121
  serverIds: serverIdsQuerySchema,
999
1122
  period: z.enum(['7d', '30d', '90d', '1y', 'all']).default('30d'),
1123
+ ...customWindowFields,
1000
1124
  sortBy: z
1001
1125
  .enum(['plays', 'watch_hours', 'viewers', 'completion_rate', 'binge_score'])
1002
1126
  .default('plays'),
1003
1127
  sortOrder: z.enum(['asc', 'desc']).default('desc'),
1004
1128
  page: z.coerce.number().int().positive().default(1),
1005
1129
  pageSize: z.coerce.number().int().positive().max(50).default(20),
1006
- });
1130
+ }));
1007
1131
  // Library shelves query schema (windowed recently-added/most-popular/dead-weight
1008
1132
  // command center) - same day/week/month/year/all/custom period convention as
1009
1133
  // statsQuerySchema, matching the frontend's TimeRangePicker/TimeRangeValue shape.