aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/typings/models/video/video-playlist.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/typings/models/video/video-playlist.ts')
-rw-r--r--server/typings/models/video/video-playlist.ts70
1 files changed, 54 insertions, 16 deletions
diff --git a/server/typings/models/video/video-playlist.ts b/server/typings/models/video/video-playlist.ts
index 825b3391c..633818405 100644
--- a/server/typings/models/video/video-playlist.ts
+++ b/server/typings/models/video/video-playlist.ts
@@ -5,38 +5,76 @@ import { MThumbnail } from './thumbnail'
5import { MChannelDefault, MChannelSummary } from './video-channels' 5import { MChannelDefault, MChannelSummary } from './video-channels'
6import { MVideoPlaylistElementLight } from '@server/typings/models/video/video-playlist-element' 6import { MVideoPlaylistElementLight } from '@server/typings/models/video/video-playlist-element'
7 7
8type Use<K extends keyof VideoPlaylistModel, M> = PickWith<VideoPlaylistModel, K, M>
9
10// ############################################################################
11
8export type MVideoPlaylist = Omit<VideoPlaylistModel, 'OwnerAccount' | 'VideoChannel' | 'VideoPlaylistElements' | 'Thumbnail'> 12export type MVideoPlaylist = Omit<VideoPlaylistModel, 'OwnerAccount' | 'VideoChannel' | 'VideoPlaylistElements' | 'Thumbnail'>
13
14// ############################################################################
15
9export type MVideoPlaylistId = Pick<MVideoPlaylist, 'id'> 16export type MVideoPlaylistId = Pick<MVideoPlaylist, 'id'>
10export type MVideoPlaylistPrivacy = Pick<MVideoPlaylist, 'privacy'> 17export type MVideoPlaylistPrivacy = Pick<MVideoPlaylist, 'privacy'>
18export type MVideoPlaylistUUID = Pick<MVideoPlaylist, 'uuid'>
19export type MVideoPlaylistVideosLength = MVideoPlaylist & { videosLength: number }
20
21// ############################################################################
22
23// With elements
11 24
12export type MVideoPlaylistWithElements = MVideoPlaylist & 25export type MVideoPlaylistWithElements = MVideoPlaylist &
13 PickWith<VideoPlaylistModel, 'VideoPlaylistElements', MVideoPlaylistElementLight[]> 26 Use<'VideoPlaylistElements', MVideoPlaylistElementLight[]>
14export type MVideoPlaylistIdWithElements = MVideoPlaylistId & MVideoPlaylistWithElements
15 27
16export type MVideoPlaylistUUID = Pick<MVideoPlaylist, 'uuid'> 28export type MVideoPlaylistIdWithElements = MVideoPlaylistId &
29 Use<'VideoPlaylistElements', MVideoPlaylistElementLight[]>
30
31// ############################################################################
32
33// With account
17 34
18export type MVideoPlaylistOwner = MVideoPlaylist & 35export type MVideoPlaylistOwner = MVideoPlaylist &
19 PickWith<VideoPlaylistModel, 'OwnerAccount', MAccount> 36 Use<'OwnerAccount', MAccount>
20 37
21export type MVideoPlaylistOwnerDefault = MVideoPlaylist & 38export type MVideoPlaylistOwnerDefault = MVideoPlaylist &
22 PickWith<VideoPlaylistModel, 'OwnerAccount', MAccountDefault> 39 Use<'OwnerAccount', MAccountDefault>
40
41// ############################################################################
42
43// With thumbnail
23 44
24export type MVideoPlaylistThumbnail = MVideoPlaylist & 45export type MVideoPlaylistThumbnail = MVideoPlaylist &
25 PickWith<VideoPlaylistModel, 'Thumbnail', MThumbnail> 46 Use<'Thumbnail', MThumbnail>
26 47
27export type MVideoPlaylistAccountThumbnail = MVideoPlaylistOwnerDefault & 48export type MVideoPlaylistAccountThumbnail = MVideoPlaylist &
28 PickWith<VideoPlaylistModel, 'Thumbnail', MThumbnail> 49 Use<'OwnerAccount', MAccountDefault> &
50 Use<'Thumbnail', MThumbnail>
29 51
30export type MVideoPlaylistAccountChannelSummary = MVideoPlaylist & 52// ############################################################################
31 PickWith<VideoPlaylistModel, 'OwnerAccount', MAccountSummary> & 53
32 PickWith<VideoPlaylistModel, 'VideoChannel', MChannelSummary> 54// With channel
33 55
34export type MVideoPlaylistAccountChannelDefault = MVideoPlaylist & 56export type MVideoPlaylistAccountChannelDefault = MVideoPlaylist &
35 PickWith<VideoPlaylistModel, 'OwnerAccount', MAccountDefault> & 57 Use<'OwnerAccount', MAccountDefault> &
36 PickWith<VideoPlaylistModel, 'VideoChannel', MChannelDefault> 58 Use<'VideoChannel', MChannelDefault>
37 59
38export type MVideoPlaylistVideosLength = MVideoPlaylist & { videosLength: number } 60// ############################################################################
39 61
40export type MVideoPlaylistFullSummary = MVideoPlaylistAccountChannelSummary & MVideoPlaylistThumbnail 62// With all associations
63
64export type MVideoPlaylistFull = MVideoPlaylist &
65 Use<'OwnerAccount', MAccountDefault> &
66 Use<'VideoChannel', MChannelDefault> &
67 Use<'Thumbnail', MThumbnail>
68
69// ############################################################################
70
71// For API
72
73export type MVideoPlaylistAccountChannelSummary = MVideoPlaylist &
74 Use<'OwnerAccount', MAccountSummary> &
75 Use<'VideoChannel', MChannelSummary>
41 76
42export type MVideoPlaylistFull = MVideoPlaylist & MVideoPlaylistThumbnail & MVideoPlaylistAccountChannelDefault 77export type MVideoPlaylistFullSummary = MVideoPlaylist &
78 Use<'Thumbnail', MThumbnail> &
79 Use<'OwnerAccount', MAccountSummary> &
80 Use<'VideoChannel', MChannelSummary>