|
| 1 | +import type { Any, EntityTypes, Short } from '~/models/trakt/trakt-entity.model'; |
1 | 2 | import type { TraktEpisode } from '~/models/trakt/trakt-episode.model';
|
2 | 3 | import type { TraktMovie } from '~/models/trakt/trakt-movie.model';
|
3 | 4 | import type { TraktSeason } from '~/models/trakt/trakt-season.model';
|
@@ -49,60 +50,49 @@ export type TraktCollectionMetadata = {
|
49 | 50 | '3d': boolean;
|
50 | 51 | };
|
51 | 52 |
|
52 |
| -export type TraktCollectionEpisode<M extends 'metadata' | 'short' | 'any' = 'any'> = { |
| 53 | +export type TraktCollectionEpisode<M extends 'metadata' | Short | Any = Any> = { |
53 | 54 | number: number;
|
54 | 55 | /** Timestamp in ISO 8601 GMT format (YYYY-MM-DD'T'hh:mm:ss.sssZ) */
|
55 | 56 | collected_at: string;
|
56 |
| -} & (M extends 'metadata' |
57 |
| - ? { metadata: TraktCollectionMetadata } |
58 |
| - : M extends 'short' |
59 |
| - ? Record<string, never> |
60 |
| - : { metadata?: TraktCollectionMetadata }); |
| 57 | +} & (M extends 'metadata' ? { metadata: TraktCollectionMetadata } : M extends Short ? Record<string, never> : { metadata?: TraktCollectionMetadata }); |
61 | 58 |
|
62 |
| -export type TraktCollectionSeason<M extends 'metadata' | 'short' | 'any' = 'any'> = { |
| 59 | +export type TraktCollectionSeason<M extends 'metadata' | Short | Any = Any> = { |
63 | 60 | number: number;
|
64 | 61 | episodes: TraktCollectionEpisode<M>[];
|
65 | 62 | };
|
66 | 63 |
|
67 |
| -type TraktCollectionShow<M extends 'metadata' | 'short' | 'any' = 'any', E extends 'extended' | 'short' | 'any' = 'any'> = { |
| 64 | +type TraktCollectionShow<M extends 'metadata' | Short | Any = Any, E extends EntityTypes = Any> = { |
68 | 65 | last_collected_at: string;
|
69 | 66 | last_updated_at: string;
|
70 | 67 | show: TraktShow<E>;
|
71 | 68 | seasons: TraktCollectionSeason<M>[];
|
72 | 69 | };
|
73 | 70 |
|
74 |
| -type TraktCollectionMovie<M extends 'metadata' | 'short' | 'any' = 'any', E extends 'extended' | 'short' | 'any' = 'any'> = { |
| 71 | +type TraktCollectionMovie<M extends 'metadata' | Short | Any = Any, E extends EntityTypes = Any> = { |
75 | 72 | collected_at: string;
|
76 | 73 | updated_at: string;
|
77 | 74 | movie: TraktMovie<E>;
|
78 |
| -} & (M extends 'metadata' |
79 |
| - ? { metadata: TraktCollectionMetadata } |
80 |
| - : M extends 'short' |
81 |
| - ? Record<string, never> |
82 |
| - : { metadata?: TraktCollectionMetadata }); |
| 75 | +} & (M extends 'metadata' ? { metadata: TraktCollectionMetadata } : M extends Short ? Record<string, never> : { metadata?: TraktCollectionMetadata }); |
83 | 76 |
|
84 | 77 | export type TraktCollection<
|
85 |
| - T extends 'movie' | 'show' | 'any' = 'any', |
86 |
| - M extends 'metadata' | 'short' | 'any' = 'any', |
87 |
| - E extends 'extended' | 'short' | 'any' = 'any', |
| 78 | + T extends 'movie' | 'show' | Any = Any, |
| 79 | + M extends 'metadata' | Short | Any = Any, |
| 80 | + E extends EntityTypes = Any, |
88 | 81 | > = T extends 'movie'
|
89 | 82 | ? TraktCollectionMovie<M, E>
|
90 | 83 | : T extends 'show'
|
91 | 84 | ? TraktCollectionShow<M, E>
|
92 | 85 | : TraktCollectionMovie<M, E> | TraktCollectionShow<M, E>;
|
93 | 86 |
|
94 |
| -export type TraktCollectionRequestItem< |
95 |
| - T extends 'movies' | 'shows' | 'seasons' | 'episodes' | 'any' = 'any', |
96 |
| - M extends 'metadata' | 'short' = 'short', |
97 |
| -> = { |
| 87 | +export type TraktCollectionRequestItem<T extends 'movies' | 'shows' | 'seasons' | 'episodes' | Any = Any, M extends 'metadata' | Short = Short> = { |
98 | 88 | /**
|
99 | 89 | * UTC datetime when the item was collected. - Timestamp in ISO 8601 GMT format (YYYY-MM-DD'T'hh:mm:ss.sssZ)
|
100 | 90 | * Set to released to automatically use the inital release date + runtime (episodes only)).
|
101 | 91 | */
|
102 | 92 | collected_at?: string;
|
103 | 93 | } & (M extends 'metadata' ? Partial<TraktCollectionMetadata> & BaseSyncRequestItem<T> : BaseSyncRequestItem<T>);
|
104 | 94 |
|
105 |
| -export type TraktCollectionRequest<T extends 'metadata' | 'short' = 'short'> = { |
| 95 | +export type TraktCollectionRequest<T extends 'metadata' | Short = Short> = { |
106 | 96 | movies?: TraktCollectionRequestItem<'movies', T>[];
|
107 | 97 | shows?: TraktCollectionRequestItem<'shows', T>[];
|
108 | 98 | seasons?: TraktCollectionRequestItem<'seasons', T>[];
|
|
0 commit comments