diff options
author | Chocobozzz <me@florianbigard.com> | 2019-08-20 13:52:49 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2019-08-20 14:53:42 +0200 |
commit | 0283eaac2a8e73006c66df3cf5bb9012e37450e5 (patch) | |
tree | 1fb73aeef57f984a77f47828ade23c6365ce8eb0 /server/typings/models/video | |
parent | 96ca24f00e5ae5471dee9ee596489fe50af2b46f (diff) | |
download | PeerTube-0283eaac2a8e73006c66df3cf5bb9012e37450e5.tar.gz PeerTube-0283eaac2a8e73006c66df3cf5bb9012e37450e5.tar.zst PeerTube-0283eaac2a8e73006c66df3cf5bb9012e37450e5.zip |
Cleanup model types
Diffstat (limited to 'server/typings/models/video')
-rw-r--r-- | server/typings/models/video/index.d.ts | 4 | ||||
-rw-r--r-- | server/typings/models/video/video-abuse.ts | 14 | ||||
-rw-r--r-- | server/typings/models/video/video-blacklist.ts | 8 | ||||
-rw-r--r-- | server/typings/models/video/video-caption.ts | 8 | ||||
-rw-r--r-- | server/typings/models/video/video-change-ownership.ts | 10 | ||||
-rw-r--r-- | server/typings/models/video/video-channels.ts | 95 | ||||
-rw-r--r-- | server/typings/models/video/video-comment.ts | 38 | ||||
-rw-r--r-- | server/typings/models/video/video-file.ts | 8 | ||||
-rw-r--r-- | server/typings/models/video/video-import.ts | 23 | ||||
-rw-r--r-- | server/typings/models/video/video-playlist-element.ts | 19 | ||||
-rw-r--r-- | server/typings/models/video/video-playlist.ts | 70 | ||||
-rw-r--r-- | server/typings/models/video/video-rate.ts | 10 | ||||
-rw-r--r-- | server/typings/models/video/video-redundancy.ts | 16 | ||||
-rw-r--r-- | server/typings/models/video/video-share.ts | 11 | ||||
-rw-r--r-- | server/typings/models/video/video-streaming-playlist.ts | 8 | ||||
-rw-r--r-- | server/typings/models/video/video.ts | 141 |
16 files changed, 340 insertions, 143 deletions
diff --git a/server/typings/models/video/index.d.ts b/server/typings/models/video/index.d.ts index 528e9d274..bd69c8a4b 100644 --- a/server/typings/models/video/index.d.ts +++ b/server/typings/models/video/index.d.ts | |||
@@ -5,10 +5,14 @@ export * from './video' | |||
5 | export * from './video-abuse' | 5 | export * from './video-abuse' |
6 | export * from './video-blacklist' | 6 | export * from './video-blacklist' |
7 | export * from './video-caption' | 7 | export * from './video-caption' |
8 | export * from './video-change-ownership' | ||
8 | export * from './video-channels' | 9 | export * from './video-channels' |
9 | export * from './video-comment' | 10 | export * from './video-comment' |
10 | export * from './video-file' | 11 | export * from './video-file' |
12 | export * from './video-import' | ||
11 | export * from './video-playlist' | 13 | export * from './video-playlist' |
14 | export * from './video-playlist-element' | ||
15 | export * from './video-rate' | ||
12 | export * from './video-redundancy' | 16 | export * from './video-redundancy' |
13 | export * from './video-share' | 17 | export * from './video-share' |
14 | export * from './video-streaming-playlist' | 18 | export * from './video-streaming-playlist' |
diff --git a/server/typings/models/video/video-abuse.ts b/server/typings/models/video/video-abuse.ts index 1667ae55a..0474cac5b 100644 --- a/server/typings/models/video/video-abuse.ts +++ b/server/typings/models/video/video-abuse.ts | |||
@@ -3,13 +3,21 @@ import { PickWith } from '../../utils' | |||
3 | import { MVideo } from './video' | 3 | import { MVideo } from './video' |
4 | import { MAccountDefault } from '../account' | 4 | import { MAccountDefault } from '../account' |
5 | 5 | ||
6 | type Use<K extends keyof VideoAbuseModel, M> = PickWith<VideoAbuseModel, K, M> | ||
7 | |||
8 | // ############################################################################ | ||
9 | |||
6 | export type MVideoAbuse = Omit<VideoAbuseModel, 'Account' | 'Video' | 'toActivityPubObject'> | 10 | export type MVideoAbuse = Omit<VideoAbuseModel, 'Account' | 'Video' | 'toActivityPubObject'> |
7 | 11 | ||
12 | // ############################################################################ | ||
13 | |||
8 | export type MVideoAbuseId = Pick<VideoAbuseModel, 'id'> | 14 | export type MVideoAbuseId = Pick<VideoAbuseModel, 'id'> |
9 | 15 | ||
10 | export type MVideoAbuseVideo = MVideoAbuse & | 16 | export type MVideoAbuseVideo = MVideoAbuse & |
11 | Pick<VideoAbuseModel, 'toActivityPubObject'> & | 17 | Pick<VideoAbuseModel, 'toActivityPubObject'> & |
12 | PickWith<VideoAbuseModel, 'Video', MVideo> | 18 | Use<'Video', MVideo> |
13 | 19 | ||
14 | export type MVideoAbuseAccountVideo = MVideoAbuseVideo & | 20 | export type MVideoAbuseAccountVideo = MVideoAbuse & |
15 | PickWith<VideoAbuseModel, 'Account', MAccountDefault> | 21 | Pick<VideoAbuseModel, 'toActivityPubObject'> & |
22 | Use<'Video', MVideo> & | ||
23 | Use<'Account', MAccountDefault> | ||
diff --git a/server/typings/models/video/video-blacklist.ts b/server/typings/models/video/video-blacklist.ts index 9242b357d..cc539f95c 100644 --- a/server/typings/models/video/video-blacklist.ts +++ b/server/typings/models/video/video-blacklist.ts | |||
@@ -2,10 +2,16 @@ import { VideoBlacklistModel } from '../../../models/video/video-blacklist' | |||
2 | import { PickWith } from '@server/typings/utils' | 2 | import { PickWith } from '@server/typings/utils' |
3 | import { MVideo } from '@server/typings/models' | 3 | import { MVideo } from '@server/typings/models' |
4 | 4 | ||
5 | type Use<K extends keyof VideoBlacklistModel, M> = PickWith<VideoBlacklistModel, K, M> | ||
6 | |||
7 | // ############################################################################ | ||
8 | |||
5 | export type MVideoBlacklist = Omit<VideoBlacklistModel, 'Video'> | 9 | export type MVideoBlacklist = Omit<VideoBlacklistModel, 'Video'> |
6 | 10 | ||
7 | export type MVideoBlacklistLight = Pick<MVideoBlacklist, 'id' | 'reason' | 'unfederated'> | 11 | export type MVideoBlacklistLight = Pick<MVideoBlacklist, 'id' | 'reason' | 'unfederated'> |
8 | export type MVideoBlacklistUnfederated = Pick<MVideoBlacklist, 'unfederated'> | 12 | export type MVideoBlacklistUnfederated = Pick<MVideoBlacklist, 'unfederated'> |
9 | 13 | ||
14 | // ############################################################################ | ||
15 | |||
10 | export type MVideoBlacklistVideo = MVideoBlacklist & | 16 | export type MVideoBlacklistVideo = MVideoBlacklist & |
11 | PickWith<VideoBlacklistModel, 'Video', MVideo> | 17 | Use<'Video', MVideo> |
diff --git a/server/typings/models/video/video-caption.ts b/server/typings/models/video/video-caption.ts index 16d8b7392..fe0e664c2 100644 --- a/server/typings/models/video/video-caption.ts +++ b/server/typings/models/video/video-caption.ts | |||
@@ -2,9 +2,15 @@ import { VideoCaptionModel } from '../../../models/video/video-caption' | |||
2 | import { PickWith } from '@server/typings/utils' | 2 | import { PickWith } from '@server/typings/utils' |
3 | import { VideoModel } from '@server/models/video/video' | 3 | import { VideoModel } from '@server/models/video/video' |
4 | 4 | ||
5 | type Use<K extends keyof VideoCaptionModel, M> = PickWith<VideoCaptionModel, K, M> | ||
6 | |||
7 | // ############################################################################ | ||
8 | |||
5 | export type MVideoCaption = Omit<VideoCaptionModel, 'Video'> | 9 | export type MVideoCaption = Omit<VideoCaptionModel, 'Video'> |
6 | 10 | ||
11 | // ############################################################################ | ||
12 | |||
7 | export type MVideoCaptionLanguage = Pick<MVideoCaption, 'language'> | 13 | export type MVideoCaptionLanguage = Pick<MVideoCaption, 'language'> |
8 | 14 | ||
9 | export type MVideoCaptionVideo = MVideoCaption & | 15 | export type MVideoCaptionVideo = MVideoCaption & |
10 | PickWith<VideoCaptionModel, 'Video', Pick<VideoModel, 'id' | 'remote' | 'uuid'>> | 16 | Use<'Video', Pick<VideoModel, 'id' | 'remote' | 'uuid'>> |
diff --git a/server/typings/models/video/video-change-ownership.ts b/server/typings/models/video/video-change-ownership.ts index 718515e2d..0410115c6 100644 --- a/server/typings/models/video/video-change-ownership.ts +++ b/server/typings/models/video/video-change-ownership.ts | |||
@@ -2,9 +2,13 @@ import { VideoChangeOwnershipModel } from '@server/models/video/video-change-own | |||
2 | import { PickWith } from '@server/typings/utils' | 2 | import { PickWith } from '@server/typings/utils' |
3 | import { MAccountDefault, MVideoWithFileThumbnail } from '@server/typings/models' | 3 | import { MAccountDefault, MVideoWithFileThumbnail } from '@server/typings/models' |
4 | 4 | ||
5 | type Use<K extends keyof VideoChangeOwnershipModel, M> = PickWith<VideoChangeOwnershipModel, K, M> | ||
6 | |||
7 | // ############################################################################ | ||
8 | |||
5 | export type MVideoChangeOwnership = Omit<VideoChangeOwnershipModel, 'Initiator' | 'NextOwner' | 'Video'> | 9 | export type MVideoChangeOwnership = Omit<VideoChangeOwnershipModel, 'Initiator' | 'NextOwner' | 'Video'> |
6 | 10 | ||
7 | export type MVideoChangeOwnershipFull = MVideoChangeOwnership & | 11 | export type MVideoChangeOwnershipFull = MVideoChangeOwnership & |
8 | PickWith<VideoChangeOwnershipModel, 'Initiator', MAccountDefault> & | 12 | Use<'Initiator', MAccountDefault> & |
9 | PickWith<VideoChangeOwnershipModel, 'NextOwner', MAccountDefault> & | 13 | Use<'NextOwner', MAccountDefault> & |
10 | PickWith<VideoChangeOwnershipModel, 'Video', MVideoWithFileThumbnail> | 14 | Use<'Video', MVideoWithFileThumbnail> |
diff --git a/server/typings/models/video/video-channels.ts b/server/typings/models/video/video-channels.ts index e10bd6842..b6506ed9f 100644 --- a/server/typings/models/video/video-channels.ts +++ b/server/typings/models/video/video-channels.ts | |||
@@ -1,70 +1,97 @@ | |||
1 | import { FunctionProperties, PickWith } from '../../utils' | 1 | import { PickWith } from '../../utils' |
2 | import { VideoChannelModel } from '../../../models/video/video-channel' | 2 | import { VideoChannelModel } from '../../../models/video/video-channel' |
3 | import { | 3 | import { |
4 | MAccountActor, | 4 | MAccountActor, |
5 | MAccountAPI, | 5 | MAccountAPI, |
6 | MAccountBlocks, | ||
7 | MAccountDefault, | 6 | MAccountDefault, |
8 | MAccountLight, | 7 | MAccountLight, |
8 | MAccountSummaryBlocks, | ||
9 | MAccountUserId, | 9 | MAccountUserId, |
10 | MActor, | 10 | MActor, |
11 | MActorAccountChannelId, | 11 | MActorAccountChannelId, |
12 | MActorAPI, | 12 | MActorAPI, |
13 | MActorDefault, | 13 | MActorDefault, |
14 | MActorDefaultLight, MActorLight, | 14 | MActorDefaultLight, |
15 | MActorLight, | ||
15 | MActorSummary | 16 | MActorSummary |
16 | } from '../account' | 17 | } from '../account' |
17 | import { MVideo } from './video' | 18 | import { MVideo } from './video' |
18 | 19 | ||
19 | export type MChannelId = FunctionProperties<VideoChannelModel> | 20 | type Use<K extends keyof VideoChannelModel, M> = PickWith<VideoChannelModel, K, M> |
20 | export type MChannelIdActor = MChannelId & | 21 | |
21 | PickWith<VideoChannelModel, 'Actor', MActorAccountChannelId> | 22 | // ############################################################################ |
22 | 23 | ||
23 | export type MChannel = Omit<VideoChannelModel, 'Actor' | 'Account' | 'Videos' | 'VideoPlaylists'> | 24 | export type MChannel = Omit<VideoChannelModel, 'Actor' | 'Account' | 'Videos' | 'VideoPlaylists'> |
24 | 25 | ||
26 | // ############################################################################ | ||
27 | |||
28 | export type MChannelId = Pick<MChannel, 'id'> | ||
29 | |||
30 | // ############################################################################ | ||
31 | |||
32 | export type MChannelIdActor = MChannelId & | ||
33 | Use<'Actor', MActorAccountChannelId> | ||
34 | |||
25 | export type MChannelUserId = Pick<MChannel, 'accountId'> & | 35 | export type MChannelUserId = Pick<MChannel, 'accountId'> & |
26 | PickWith<VideoChannelModel, 'Account', MAccountUserId> | 36 | Use<'Account', MAccountUserId> |
37 | |||
38 | export type MChannelActor = MChannel & | ||
39 | Use<'Actor', MActor> | ||
27 | 40 | ||
28 | // Default scope | 41 | // Default scope |
29 | export type MChannelDefault = MChannel & | 42 | export type MChannelDefault = MChannel & |
30 | PickWith<VideoChannelModel, 'Actor', MActorDefault> | 43 | Use<'Actor', MActorDefault> |
44 | |||
45 | // ############################################################################ | ||
46 | |||
47 | // Not all association attributes | ||
31 | 48 | ||
32 | export type MChannelLight = MChannel & | 49 | export type MChannelLight = MChannel & |
33 | PickWith<VideoChannelModel, 'Actor', MActorDefaultLight> | 50 | Use<'Actor', MActorDefaultLight> |
34 | 51 | ||
35 | export type MChannelAccountLight = MChannel & | 52 | export type MChannelActorLight = MChannel & |
36 | PickWith<VideoChannelModel, 'Actor', MActorDefaultLight> & | 53 | Use<'Actor', MActorLight> |
37 | PickWith<VideoChannelModel, 'Account', MAccountLight> | ||
38 | 54 | ||
39 | export type MChannelSummary = Pick<MChannel, 'id' | 'name' | 'description' | 'actorId'> & | 55 | export type MChannelAccountLight = MChannel & |
40 | PickWith<VideoChannelModel, 'Actor', MActorSummary> | 56 | Use<'Actor', MActorDefaultLight> & |
57 | Use<'Account', MAccountLight> | ||
41 | 58 | ||
42 | export type MChannelSummaryAccount = MChannelSummary & | 59 | // ############################################################################ |
43 | PickWith<VideoChannelModel, 'Account', MAccountBlocks> | ||
44 | 60 | ||
45 | export type MChannelAPI = MChannel & | 61 | // Account associations |
46 | PickWith<VideoChannelModel, 'Actor', MActorAPI> & | ||
47 | PickWith<VideoChannelModel, 'Account', MAccountAPI> | ||
48 | 62 | ||
49 | export type MChannelAccountActor = MChannel & | 63 | export type MChannelAccountActor = MChannel & |
50 | PickWith<VideoChannelModel, 'Account', MAccountActor> | 64 | Use<'Account', MAccountActor> |
51 | export type MChannelAccountDefault = MChannelActor & | 65 | |
52 | PickWith<VideoChannelModel, 'Account', MAccountDefault> | 66 | export type MChannelAccountDefault = MChannel & |
67 | Use<'Actor', MActorDefault> & | ||
68 | Use<'Account', MAccountDefault> | ||
53 | 69 | ||
70 | export type MChannelActorAccountActor = MChannel & | ||
71 | Use<'Account', MAccountActor> & | ||
72 | Use<'Actor', MActor> | ||
73 | |||
74 | // ############################################################################ | ||
75 | |||
76 | // Videos associations | ||
54 | export type MChannelVideos = MChannel & | 77 | export type MChannelVideos = MChannel & |
55 | PickWith<VideoChannelModel, 'Videos', MVideo[]> | 78 | Use<'Videos', MVideo[]> |
56 | 79 | ||
57 | export type MChannelActor = MChannel & | 80 | export type MChannelActorAccountDefaultVideos = MChannel & |
58 | PickWith<VideoChannelModel, 'Actor', MActor> | 81 | Use<'Actor', MActorDefault> & |
59 | export type MChannelActorLight = MChannel & | 82 | Use<'Account', MAccountDefault> & |
60 | PickWith<VideoChannelModel, 'Actor', MActorLight> | 83 | Use<'Videos', MVideo[]> |
61 | export type MChannelActorDefault = MChannel & | 84 | |
62 | PickWith<VideoChannelModel, 'Actor', MActorDefault> | 85 | // ############################################################################ |
86 | |||
87 | // For API | ||
63 | 88 | ||
64 | export type MChannelActorAccountActor = MChannelAccountActor & MChannelActor | 89 | export type MChannelSummary = Pick<MChannel, 'id' | 'name' | 'description' | 'actorId'> & |
90 | Use<'Actor', MActorSummary> | ||
65 | 91 | ||
66 | export type MChannelActorAccountDefault = MChannel & | 92 | export type MChannelSummaryAccount = MChannelSummary & |
67 | PickWith<VideoChannelModel, 'Actor', MActorDefault> & | 93 | Use<'Account', MAccountSummaryBlocks> |
68 | PickWith<VideoChannelModel, 'Account', MAccountDefault> | ||
69 | 94 | ||
70 | export type MChannelActorAccountDefaultVideos = MChannelActorAccountDefault & MChannelVideos | 95 | export type MChannelAPI = MChannel & |
96 | Use<'Actor', MActorAPI> & | ||
97 | Use<'Account', MAccountAPI> | ||
diff --git a/server/typings/models/video/video-comment.ts b/server/typings/models/video/video-comment.ts index 675613804..187461213 100644 --- a/server/typings/models/video/video-comment.ts +++ b/server/typings/models/video/video-comment.ts | |||
@@ -1,29 +1,43 @@ | |||
1 | import { VideoCommentModel } from '../../../models/video/video-comment' | 1 | import { VideoCommentModel } from '../../../models/video/video-comment' |
2 | import { PickWith } from '../../utils' | 2 | import { PickWith } from '../../utils' |
3 | import { MAccountDefault } from '../account' | 3 | import { MAccountDefault } from '../account' |
4 | import { MVideoAccountDefault, MVideoAccountLight, MVideoFeed, MVideoIdUrl } from './video' | 4 | import { MVideoAccountLight, MVideoFeed, MVideoIdUrl } from './video' |
5 | |||
6 | type Use<K extends keyof VideoCommentModel, M> = PickWith<VideoCommentModel, K, M> | ||
7 | |||
8 | // ############################################################################ | ||
5 | 9 | ||
6 | export type MComment = Omit<VideoCommentModel, 'OriginVideoComment' | 'InReplyToVideoComment' | 'Video' | 'Account'> | 10 | export type MComment = Omit<VideoCommentModel, 'OriginVideoComment' | 'InReplyToVideoComment' | 'Video' | 'Account'> |
7 | export type MCommentId = Pick<MComment, 'id'> | 11 | export type MCommentId = Pick<MComment, 'id'> |
8 | 12 | ||
9 | export type MCommentAPI = MComment & { totalReplies: number } | 13 | // ############################################################################ |
10 | 14 | ||
11 | export type MCommentOwner = MComment & | 15 | export type MCommentOwner = MComment & |
12 | PickWith<VideoCommentModel, 'Account', MAccountDefault> | 16 | Use<'Account', MAccountDefault> |
13 | 17 | ||
14 | export type MCommentVideo = MComment & | 18 | export type MCommentVideo = MComment & |
15 | PickWith<VideoCommentModel, 'Video', MVideoAccountLight> | 19 | Use<'Video', MVideoAccountLight> |
16 | 20 | ||
17 | export type MCommentReply = MComment & | 21 | export type MCommentReply = MComment & |
18 | PickWith<VideoCommentModel, 'InReplyToVideoComment', MComment> | 22 | Use<'InReplyToVideoComment', MComment> |
23 | |||
24 | export type MCommentOwnerVideo = MComment & | ||
25 | Use<'Account', MAccountDefault> & | ||
26 | Use<'Video', MVideoAccountLight> | ||
19 | 27 | ||
20 | export type MCommentOwnerReply = MCommentOwner & MCommentReply | 28 | export type MCommentOwnerVideoReply = MComment & |
21 | export type MCommentOwnerVideo = MCommentOwner & MCommentVideo | 29 | Use<'Account', MAccountDefault> & |
22 | export type MCommentReplyVideo = MCommentReply & MCommentVideo | 30 | Use<'Video', MVideoAccountLight> & |
23 | export type MCommentOwnerVideoReply = MCommentOwnerVideo & MCommentReply | 31 | Use<'InReplyToVideoComment', MComment> |
24 | 32 | ||
25 | export type MCommentOwnerReplyVideoLight = MCommentOwnerReply & | 33 | export type MCommentOwnerReplyVideoLight = MComment & |
26 | PickWith<VideoCommentModel, 'Video', MVideoIdUrl> | 34 | Use<'Account', MAccountDefault> & |
35 | Use<'InReplyToVideoComment', MComment> & | ||
36 | Use<'Video', MVideoIdUrl> | ||
27 | 37 | ||
28 | export type MCommentOwnerVideoFeed = MCommentOwner & | 38 | export type MCommentOwnerVideoFeed = MCommentOwner & |
29 | PickWith<VideoCommentModel, 'Video', MVideoFeed> | 39 | Use<'Video', MVideoFeed> |
40 | |||
41 | // ############################################################################ | ||
42 | |||
43 | export type MCommentAPI = MComment & { totalReplies: number } | ||
diff --git a/server/typings/models/video/video-file.ts b/server/typings/models/video/video-file.ts index afa659d1f..484351a8d 100644 --- a/server/typings/models/video/video-file.ts +++ b/server/typings/models/video/video-file.ts | |||
@@ -3,13 +3,17 @@ import { PickWith, PickWithOpt } from '../../utils' | |||
3 | import { MVideo, MVideoUUID } from './video' | 3 | import { MVideo, MVideoUUID } from './video' |
4 | import { MVideoRedundancyFileUrl } from './video-redundancy' | 4 | import { MVideoRedundancyFileUrl } from './video-redundancy' |
5 | 5 | ||
6 | type Use<K extends keyof VideoFileModel, M> = PickWith<VideoFileModel, K, M> | ||
7 | |||
8 | // ############################################################################ | ||
9 | |||
6 | export type MVideoFile = Omit<VideoFileModel, 'Video' | 'RedundancyVideos'> | 10 | export type MVideoFile = Omit<VideoFileModel, 'Video' | 'RedundancyVideos'> |
7 | 11 | ||
8 | export type MVideoFileVideo = MVideoFile & | 12 | export type MVideoFileVideo = MVideoFile & |
9 | PickWith<VideoFileModel, 'Video', MVideo> | 13 | Use<'Video', MVideo> |
10 | 14 | ||
11 | export type MVideoFileVideoUUID = MVideoFile & | 15 | export type MVideoFileVideoUUID = MVideoFile & |
12 | PickWith<VideoFileModel, 'Video', MVideoUUID> | 16 | Use<'Video', MVideoUUID> |
13 | 17 | ||
14 | export type MVideoFileRedundanciesOpt = MVideoFile & | 18 | export type MVideoFileRedundanciesOpt = MVideoFile & |
15 | PickWithOpt<VideoFileModel, 'RedundancyVideos', MVideoRedundancyFileUrl[]> | 19 | PickWithOpt<VideoFileModel, 'RedundancyVideos', MVideoRedundancyFileUrl[]> |
diff --git a/server/typings/models/video/video-import.ts b/server/typings/models/video/video-import.ts index 51be900d6..ada723713 100644 --- a/server/typings/models/video/video-import.ts +++ b/server/typings/models/video/video-import.ts | |||
@@ -2,14 +2,23 @@ import { VideoImportModel } from '@server/models/video/video-import' | |||
2 | import { PickWith } from '@server/typings/utils' | 2 | import { PickWith } from '@server/typings/utils' |
3 | import { MUser, MVideo, MVideoAccountLight, MVideoTag, MVideoThumbnail, MVideoWithFile } from '@server/typings/models' | 3 | import { MUser, MVideo, MVideoAccountLight, MVideoTag, MVideoThumbnail, MVideoWithFile } from '@server/typings/models' |
4 | 4 | ||
5 | export type MVideoImport = Omit<VideoImportModel, 'User' | 'Video'> | 5 | type Use<K extends keyof VideoImportModel, M> = PickWith<VideoImportModel, K, M> |
6 | 6 | ||
7 | export type MVideoImportDefault = MVideoImport & | 7 | // ############################################################################ |
8 | PickWith<VideoImportModel, 'User', MUser> & | ||
9 | PickWith<VideoImportModel, 'Video', MVideoTag & MVideoAccountLight & MVideoThumbnail> | ||
10 | 8 | ||
11 | export type MVideoImportDefaultFiles = MVideoImportDefault & | 9 | export type MVideoImport = Omit<VideoImportModel, 'User' | 'Video'> |
12 | PickWith<VideoImportModel, 'Video', MVideoTag & MVideoAccountLight & MVideoThumbnail & MVideoWithFile> | ||
13 | 10 | ||
14 | export type MVideoImportVideo = MVideoImport & | 11 | export type MVideoImportVideo = MVideoImport & |
15 | PickWith<VideoImportModel, 'Video', MVideo> | 12 | Use<'Video', MVideo> |
13 | |||
14 | // ############################################################################ | ||
15 | |||
16 | type VideoAssociation = MVideoTag & MVideoAccountLight & MVideoThumbnail | ||
17 | |||
18 | export type MVideoImportDefault = MVideoImport & | ||
19 | Use<'User', MUser> & | ||
20 | Use<'Video', VideoAssociation> | ||
21 | |||
22 | export type MVideoImportDefaultFiles = MVideoImport & | ||
23 | Use<'User', MUser> & | ||
24 | Use<'Video', VideoAssociation & MVideoWithFile> | ||
diff --git a/server/typings/models/video/video-playlist-element.ts b/server/typings/models/video/video-playlist-element.ts index d1b8a18a0..5a039d7b1 100644 --- a/server/typings/models/video/video-playlist-element.ts +++ b/server/typings/models/video/video-playlist-element.ts | |||
@@ -2,14 +2,27 @@ import { VideoPlaylistElementModel } from '@server/models/video/video-playlist-e | |||
2 | import { PickWith } from '@server/typings/utils' | 2 | import { PickWith } from '@server/typings/utils' |
3 | import { MVideoPlaylistPrivacy, MVideoThumbnail, MVideoUrl } from '@server/typings/models' | 3 | import { MVideoPlaylistPrivacy, MVideoThumbnail, MVideoUrl } from '@server/typings/models' |
4 | 4 | ||
5 | type Use<K extends keyof VideoPlaylistElementModel, M> = PickWith<VideoPlaylistElementModel, K, M> | ||
6 | |||
7 | // ############################################################################ | ||
8 | |||
5 | export type MVideoPlaylistElement = Omit<VideoPlaylistElementModel, 'VideoPlaylist' | 'Video'> | 9 | export type MVideoPlaylistElement = Omit<VideoPlaylistElementModel, 'VideoPlaylist' | 'Video'> |
10 | |||
11 | // ############################################################################ | ||
12 | |||
6 | export type MVideoPlaylistElementId = Pick<MVideoPlaylistElement, 'id'> | 13 | export type MVideoPlaylistElementId = Pick<MVideoPlaylistElement, 'id'> |
7 | 14 | ||
8 | export type MVideoPlaylistElementLight = Pick<MVideoPlaylistElement, 'id' | 'videoId' | 'startTimestamp' | 'stopTimestamp'> | 15 | export type MVideoPlaylistElementLight = Pick<MVideoPlaylistElement, 'id' | 'videoId' | 'startTimestamp' | 'stopTimestamp'> |
9 | 16 | ||
17 | // ############################################################################ | ||
18 | |||
10 | export type MVideoPlaylistVideoThumbnail = MVideoPlaylistElement & | 19 | export type MVideoPlaylistVideoThumbnail = MVideoPlaylistElement & |
11 | PickWith<VideoPlaylistElementModel, 'Video', MVideoThumbnail> | 20 | Use<'Video', MVideoThumbnail> |
21 | |||
22 | // ############################################################################ | ||
23 | |||
24 | // For API | ||
12 | 25 | ||
13 | export type MVideoPlaylistAP = MVideoPlaylistElement & | 26 | export type MVideoPlaylistAP = MVideoPlaylistElement & |
14 | PickWith<VideoPlaylistElementModel, 'Video', MVideoUrl> & | 27 | Use<'Video', MVideoUrl> & |
15 | PickWith<VideoPlaylistElementModel, 'VideoPlaylist', MVideoPlaylistPrivacy> | 28 | Use<'VideoPlaylist', MVideoPlaylistPrivacy> |
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' | |||
5 | import { MChannelDefault, MChannelSummary } from './video-channels' | 5 | import { MChannelDefault, MChannelSummary } from './video-channels' |
6 | import { MVideoPlaylistElementLight } from '@server/typings/models/video/video-playlist-element' | 6 | import { MVideoPlaylistElementLight } from '@server/typings/models/video/video-playlist-element' |
7 | 7 | ||
8 | type Use<K extends keyof VideoPlaylistModel, M> = PickWith<VideoPlaylistModel, K, M> | ||
9 | |||
10 | // ############################################################################ | ||
11 | |||
8 | export type MVideoPlaylist = Omit<VideoPlaylistModel, 'OwnerAccount' | 'VideoChannel' | 'VideoPlaylistElements' | 'Thumbnail'> | 12 | export type MVideoPlaylist = Omit<VideoPlaylistModel, 'OwnerAccount' | 'VideoChannel' | 'VideoPlaylistElements' | 'Thumbnail'> |
13 | |||
14 | // ############################################################################ | ||
15 | |||
9 | export type MVideoPlaylistId = Pick<MVideoPlaylist, 'id'> | 16 | export type MVideoPlaylistId = Pick<MVideoPlaylist, 'id'> |
10 | export type MVideoPlaylistPrivacy = Pick<MVideoPlaylist, 'privacy'> | 17 | export type MVideoPlaylistPrivacy = Pick<MVideoPlaylist, 'privacy'> |
18 | export type MVideoPlaylistUUID = Pick<MVideoPlaylist, 'uuid'> | ||
19 | export type MVideoPlaylistVideosLength = MVideoPlaylist & { videosLength: number } | ||
20 | |||
21 | // ############################################################################ | ||
22 | |||
23 | // With elements | ||
11 | 24 | ||
12 | export type MVideoPlaylistWithElements = MVideoPlaylist & | 25 | export type MVideoPlaylistWithElements = MVideoPlaylist & |
13 | PickWith<VideoPlaylistModel, 'VideoPlaylistElements', MVideoPlaylistElementLight[]> | 26 | Use<'VideoPlaylistElements', MVideoPlaylistElementLight[]> |
14 | export type MVideoPlaylistIdWithElements = MVideoPlaylistId & MVideoPlaylistWithElements | ||
15 | 27 | ||
16 | export type MVideoPlaylistUUID = Pick<MVideoPlaylist, 'uuid'> | 28 | export type MVideoPlaylistIdWithElements = MVideoPlaylistId & |
29 | Use<'VideoPlaylistElements', MVideoPlaylistElementLight[]> | ||
30 | |||
31 | // ############################################################################ | ||
32 | |||
33 | // With account | ||
17 | 34 | ||
18 | export type MVideoPlaylistOwner = MVideoPlaylist & | 35 | export type MVideoPlaylistOwner = MVideoPlaylist & |
19 | PickWith<VideoPlaylistModel, 'OwnerAccount', MAccount> | 36 | Use<'OwnerAccount', MAccount> |
20 | 37 | ||
21 | export type MVideoPlaylistOwnerDefault = MVideoPlaylist & | 38 | export type MVideoPlaylistOwnerDefault = MVideoPlaylist & |
22 | PickWith<VideoPlaylistModel, 'OwnerAccount', MAccountDefault> | 39 | Use<'OwnerAccount', MAccountDefault> |
40 | |||
41 | // ############################################################################ | ||
42 | |||
43 | // With thumbnail | ||
23 | 44 | ||
24 | export type MVideoPlaylistThumbnail = MVideoPlaylist & | 45 | export type MVideoPlaylistThumbnail = MVideoPlaylist & |
25 | PickWith<VideoPlaylistModel, 'Thumbnail', MThumbnail> | 46 | Use<'Thumbnail', MThumbnail> |
26 | 47 | ||
27 | export type MVideoPlaylistAccountThumbnail = MVideoPlaylistOwnerDefault & | 48 | export type MVideoPlaylistAccountThumbnail = MVideoPlaylist & |
28 | PickWith<VideoPlaylistModel, 'Thumbnail', MThumbnail> | 49 | Use<'OwnerAccount', MAccountDefault> & |
50 | Use<'Thumbnail', MThumbnail> | ||
29 | 51 | ||
30 | export type MVideoPlaylistAccountChannelSummary = MVideoPlaylist & | 52 | // ############################################################################ |
31 | PickWith<VideoPlaylistModel, 'OwnerAccount', MAccountSummary> & | 53 | |
32 | PickWith<VideoPlaylistModel, 'VideoChannel', MChannelSummary> | 54 | // With channel |
33 | 55 | ||
34 | export type MVideoPlaylistAccountChannelDefault = MVideoPlaylist & | 56 | export type MVideoPlaylistAccountChannelDefault = MVideoPlaylist & |
35 | PickWith<VideoPlaylistModel, 'OwnerAccount', MAccountDefault> & | 57 | Use<'OwnerAccount', MAccountDefault> & |
36 | PickWith<VideoPlaylistModel, 'VideoChannel', MChannelDefault> | 58 | Use<'VideoChannel', MChannelDefault> |
37 | 59 | ||
38 | export type MVideoPlaylistVideosLength = MVideoPlaylist & { videosLength: number } | 60 | // ############################################################################ |
39 | 61 | ||
40 | export type MVideoPlaylistFullSummary = MVideoPlaylistAccountChannelSummary & MVideoPlaylistThumbnail | 62 | // With all associations |
63 | |||
64 | export type MVideoPlaylistFull = MVideoPlaylist & | ||
65 | Use<'OwnerAccount', MAccountDefault> & | ||
66 | Use<'VideoChannel', MChannelDefault> & | ||
67 | Use<'Thumbnail', MThumbnail> | ||
68 | |||
69 | // ############################################################################ | ||
70 | |||
71 | // For API | ||
72 | |||
73 | export type MVideoPlaylistAccountChannelSummary = MVideoPlaylist & | ||
74 | Use<'OwnerAccount', MAccountSummary> & | ||
75 | Use<'VideoChannel', MChannelSummary> | ||
41 | 76 | ||
42 | export type MVideoPlaylistFull = MVideoPlaylist & MVideoPlaylistThumbnail & MVideoPlaylistAccountChannelDefault | 77 | export type MVideoPlaylistFullSummary = MVideoPlaylist & |
78 | Use<'Thumbnail', MThumbnail> & | ||
79 | Use<'OwnerAccount', MAccountSummary> & | ||
80 | Use<'VideoChannel', MChannelSummary> | ||
diff --git a/server/typings/models/video/video-rate.ts b/server/typings/models/video/video-rate.ts index 6eefe6362..fc9329993 100644 --- a/server/typings/models/video/video-rate.ts +++ b/server/typings/models/video/video-rate.ts | |||
@@ -2,11 +2,15 @@ import { AccountVideoRateModel } from '@server/models/account/account-video-rate | |||
2 | import { PickWith } from '@server/typings/utils' | 2 | import { PickWith } from '@server/typings/utils' |
3 | import { MAccountAudience, MAccountUrl, MVideo } from '..' | 3 | import { MAccountAudience, MAccountUrl, MVideo } from '..' |
4 | 4 | ||
5 | type Use<K extends keyof AccountVideoRateModel, M> = PickWith<AccountVideoRateModel, K, M> | ||
6 | |||
7 | // ############################################################################ | ||
8 | |||
5 | export type MAccountVideoRate = Omit<AccountVideoRateModel, 'Video' | 'Account'> | 9 | export type MAccountVideoRate = Omit<AccountVideoRateModel, 'Video' | 'Account'> |
6 | 10 | ||
7 | export type MAccountVideoRateAccountUrl = MAccountVideoRate & | 11 | export type MAccountVideoRateAccountUrl = MAccountVideoRate & |
8 | PickWith<AccountVideoRateModel, 'Account', MAccountUrl> | 12 | Use<'Account', MAccountUrl> |
9 | 13 | ||
10 | export type MAccountVideoRateAccountVideo = MAccountVideoRate & | 14 | export type MAccountVideoRateAccountVideo = MAccountVideoRate & |
11 | PickWith<AccountVideoRateModel, 'Account', MAccountAudience> & | 15 | Use<'Account', MAccountAudience> & |
12 | PickWith<AccountVideoRateModel, 'Video', MVideo> | 16 | Use<'Video', MVideo> |
diff --git a/server/typings/models/video/video-redundancy.ts b/server/typings/models/video/video-redundancy.ts index ec61bfb68..c25eb9c09 100644 --- a/server/typings/models/video/video-redundancy.ts +++ b/server/typings/models/video/video-redundancy.ts | |||
@@ -2,17 +2,25 @@ import { VideoRedundancyModel } from '../../../models/redundancy/video-redundanc | |||
2 | import { PickWith } from '@server/typings/utils' | 2 | import { PickWith } from '@server/typings/utils' |
3 | import { MStreamingPlaylistVideo, MVideoFile, MVideoFileVideo } from '@server/typings/models' | 3 | import { MStreamingPlaylistVideo, MVideoFile, MVideoFileVideo } from '@server/typings/models' |
4 | 4 | ||
5 | type Use<K extends keyof VideoRedundancyModel, M> = PickWith<VideoRedundancyModel, K, M> | ||
6 | |||
7 | // ############################################################################ | ||
8 | |||
5 | export type MVideoRedundancy = Omit<VideoRedundancyModel, 'VideoFile' | 'VideoStreamingPlaylist' | 'Actor'> | 9 | export type MVideoRedundancy = Omit<VideoRedundancyModel, 'VideoFile' | 'VideoStreamingPlaylist' | 'Actor'> |
6 | 10 | ||
7 | export type MVideoRedundancyFileUrl = Pick<MVideoRedundancy, 'fileUrl'> | 11 | export type MVideoRedundancyFileUrl = Pick<MVideoRedundancy, 'fileUrl'> |
8 | 12 | ||
13 | // ############################################################################ | ||
14 | |||
9 | export type MVideoRedundancyFile = MVideoRedundancy & | 15 | export type MVideoRedundancyFile = MVideoRedundancy & |
10 | PickWith<VideoRedundancyModel, 'VideoFile', MVideoFile> | 16 | Use<'VideoFile', MVideoFile> |
11 | 17 | ||
12 | export type MVideoRedundancyFileVideo = MVideoRedundancy & | 18 | export type MVideoRedundancyFileVideo = MVideoRedundancy & |
13 | PickWith<VideoRedundancyModel, 'VideoFile', MVideoFileVideo> | 19 | Use<'VideoFile', MVideoFileVideo> |
14 | 20 | ||
15 | export type MVideoRedundancyStreamingPlaylistVideo = MVideoRedundancy & | 21 | export type MVideoRedundancyStreamingPlaylistVideo = MVideoRedundancy & |
16 | PickWith<VideoRedundancyModel, 'VideoStreamingPlaylist', MStreamingPlaylistVideo> | 22 | Use<'VideoStreamingPlaylist', MStreamingPlaylistVideo> |
17 | 23 | ||
18 | export type MVideoRedundancyVideo = MVideoRedundancyFileVideo | MVideoRedundancyStreamingPlaylistVideo | 24 | export type MVideoRedundancyVideo = MVideoRedundancy & |
25 | Use<'VideoFile', MVideoFileVideo> & | ||
26 | Use<'VideoStreamingPlaylist', MStreamingPlaylistVideo> | ||
diff --git a/server/typings/models/video/video-share.ts b/server/typings/models/video/video-share.ts index 7e8cb8b61..a7a90beeb 100644 --- a/server/typings/models/video/video-share.ts +++ b/server/typings/models/video/video-share.ts | |||
@@ -3,10 +3,15 @@ import { PickWith } from '../../utils' | |||
3 | import { MActorDefault } from '../account' | 3 | import { MActorDefault } from '../account' |
4 | import { MVideo } from './video' | 4 | import { MVideo } from './video' |
5 | 5 | ||
6 | type Use<K extends keyof VideoShareModel, M> = PickWith<VideoShareModel, K, M> | ||
7 | |||
8 | // ############################################################################ | ||
9 | |||
6 | export type MVideoShare = Omit<VideoShareModel, 'Actor' | 'Video'> | 10 | export type MVideoShare = Omit<VideoShareModel, 'Actor' | 'Video'> |
7 | 11 | ||
8 | export type MVideoShareActor = MVideoShare & | 12 | export type MVideoShareActor = MVideoShare & |
9 | PickWith<VideoShareModel, 'Actor', MActorDefault> | 13 | Use<'Actor', MActorDefault> |
10 | 14 | ||
11 | export type MVideoShareFull = MVideoShareActor & | 15 | export type MVideoShareFull = MVideoShare & |
12 | PickWith<VideoShareModel, 'Video', MVideo> | 16 | Use<'Actor', MActorDefault> & |
17 | Use<'Video', MVideo> | ||
diff --git a/server/typings/models/video/video-streaming-playlist.ts b/server/typings/models/video/video-streaming-playlist.ts index 5b6310771..f1b3438b6 100644 --- a/server/typings/models/video/video-streaming-playlist.ts +++ b/server/typings/models/video/video-streaming-playlist.ts | |||
@@ -3,10 +3,14 @@ import { PickWith } from '../../utils' | |||
3 | import { MVideoRedundancyFileUrl } from './video-redundancy' | 3 | import { MVideoRedundancyFileUrl } from './video-redundancy' |
4 | import { MVideo } from '@server/typings/models' | 4 | import { MVideo } from '@server/typings/models' |
5 | 5 | ||
6 | type Use<K extends keyof VideoStreamingPlaylistModel, M> = PickWith<VideoStreamingPlaylistModel, K, M> | ||
7 | |||
8 | // ############################################################################ | ||
9 | |||
6 | export type MStreamingPlaylist = Omit<VideoStreamingPlaylistModel, 'Video' | 'RedundancyVideos'> | 10 | export type MStreamingPlaylist = Omit<VideoStreamingPlaylistModel, 'Video' | 'RedundancyVideos'> |
7 | 11 | ||
8 | export type MStreamingPlaylistVideo = MStreamingPlaylist & | 12 | export type MStreamingPlaylistVideo = MStreamingPlaylist & |
9 | PickWith<VideoStreamingPlaylistModel, 'Video', MVideo> | 13 | Use<'Video', MVideo> |
10 | 14 | ||
11 | export type MStreamingPlaylistRedundancies = MStreamingPlaylist & | 15 | export type MStreamingPlaylistRedundancies = MStreamingPlaylist & |
12 | PickWith<VideoStreamingPlaylistModel, 'RedundancyVideos', MVideoRedundancyFileUrl[]> | 16 | Use<'RedundancyVideos', MVideoRedundancyFileUrl[]> |
diff --git a/server/typings/models/video/video.ts b/server/typings/models/video/video.ts index 0ffd0c302..914eb7f57 100644 --- a/server/typings/models/video/video.ts +++ b/server/typings/models/video/video.ts | |||
@@ -1,6 +1,6 @@ | |||
1 | import { VideoModel } from '../../../models/video/video' | 1 | import { VideoModel } from '../../../models/video/video' |
2 | import { PickWith, PickWithOpt } from '../../utils' | 2 | import { PickWith, PickWithOpt } from '../../utils' |
3 | import { MChannelAccountLight, MChannelActor, MChannelActorAccountDefault, MChannelUserId } from './video-channels' | 3 | import { MChannelAccountDefault, MChannelAccountLight, MChannelActor, MChannelUserId } from './video-channels' |
4 | import { MTag } from './tag' | 4 | import { MTag } from './tag' |
5 | import { MVideoCaptionLanguage } from './video-caption' | 5 | import { MVideoCaptionLanguage } from './video-caption' |
6 | import { MStreamingPlaylist, MStreamingPlaylistRedundancies } from './video-streaming-playlist' | 6 | import { MStreamingPlaylist, MStreamingPlaylistRedundancies } from './video-streaming-playlist' |
@@ -10,10 +10,16 @@ import { MVideoBlacklistLight, MVideoBlacklistUnfederated } from './video-blackl | |||
10 | import { MScheduleVideoUpdate } from './schedule-video-update' | 10 | import { MScheduleVideoUpdate } from './schedule-video-update' |
11 | import { MUserVideoHistoryTime } from '../user/user-video-history' | 11 | import { MUserVideoHistoryTime } from '../user/user-video-history' |
12 | 12 | ||
13 | type Use<K extends keyof VideoModel, M> = PickWith<VideoModel, K, M> | ||
14 | |||
15 | // ############################################################################ | ||
16 | |||
13 | export type MVideo = Omit<VideoModel, 'VideoChannel' | 'Tags' | 'Thumbnails' | 'VideoPlaylistElements' | 'VideoAbuses' | | 17 | export type MVideo = Omit<VideoModel, 'VideoChannel' | 'Tags' | 'Thumbnails' | 'VideoPlaylistElements' | 'VideoAbuses' | |
14 | 'VideoFiles' | 'VideoStreamingPlaylists' | 'VideoShares' | 'AccountVideoRates' | 'VideoComments' | 'VideoViews' | 'UserVideoHistories' | | 18 | 'VideoFiles' | 'VideoStreamingPlaylists' | 'VideoShares' | 'AccountVideoRates' | 'VideoComments' | 'VideoViews' | 'UserVideoHistories' | |
15 | 'ScheduleVideoUpdate' | 'VideoBlacklist' | 'VideoImport' | 'VideoCaptions'> | 19 | 'ScheduleVideoUpdate' | 'VideoBlacklist' | 'VideoImport' | 'VideoCaptions'> |
16 | 20 | ||
21 | // ############################################################################ | ||
22 | |||
17 | export type MVideoId = Pick<MVideo, 'id'> | 23 | export type MVideoId = Pick<MVideo, 'id'> |
18 | export type MVideoUrl = Pick<MVideo, 'url'> | 24 | export type MVideoUrl = Pick<MVideo, 'url'> |
19 | export type MVideoUUID = Pick<MVideo, 'uuid'> | 25 | export type MVideoUUID = Pick<MVideo, 'uuid'> |
@@ -21,83 +27,120 @@ export type MVideoUUID = Pick<MVideo, 'uuid'> | |||
21 | export type MVideoIdUrl = MVideoId & MVideoUrl | 27 | export type MVideoIdUrl = MVideoId & MVideoUrl |
22 | export type MVideoFeed = Pick<MVideo, 'name' | 'uuid'> | 28 | export type MVideoFeed = Pick<MVideo, 'name' | 'uuid'> |
23 | 29 | ||
30 | // ############################################################################ | ||
31 | |||
32 | // Video raw associations: schedules, video files, tags, thumbnails, captions, streaming playlists | ||
33 | |||
34 | // "With" to not confuse with the VideoFile model | ||
24 | export type MVideoWithFile = MVideo & | 35 | export type MVideoWithFile = MVideo & |
25 | PickWith<VideoModel, 'VideoFiles', MVideoFile[]> | 36 | Use<'VideoFiles', MVideoFile[]> |
26 | 37 | ||
27 | export type MVideoThumbnail = MVideo & | 38 | export type MVideoThumbnail = MVideo & |
28 | PickWith<VideoModel, 'Thumbnails', MThumbnail[]> | 39 | Use<'Thumbnails', MThumbnail[]> |
29 | export type MVideoIdThumbnail = MVideoThumbnail & MVideoId | 40 | |
41 | export type MVideoIdThumbnail = MVideoId & | ||
42 | Use<'Thumbnails', MThumbnail[]> | ||
43 | |||
44 | export type MVideoWithFileThumbnail = MVideo & | ||
45 | Use<'VideoFiles', MVideoFile[]> & | ||
46 | Use<'Thumbnails', MThumbnail[]> | ||
30 | 47 | ||
31 | export type MVideoTag = MVideo & | 48 | export type MVideoTag = MVideo & |
32 | PickWith<VideoModel, 'Tags', MTag[]> | 49 | Use<'Tags', MTag[]> |
33 | 50 | ||
34 | export type MVideoWithSchedule = MVideo & | 51 | export type MVideoWithSchedule = MVideo & |
35 | PickWithOpt<VideoModel, 'ScheduleVideoUpdate', MScheduleVideoUpdate> | 52 | PickWithOpt<VideoModel, 'ScheduleVideoUpdate', MScheduleVideoUpdate> |
36 | 53 | ||
37 | export type MVideoWithFileThumbnail = MVideoWithFile & MVideoThumbnail | 54 | export type MVideoWithCaptions = MVideo & |
55 | Use<'VideoCaptions', MVideoCaptionLanguage[]> | ||
38 | 56 | ||
39 | export type MVideoUser = MVideo & | 57 | export type MVideoWithStreamingPlaylist = MVideo & |
40 | PickWith<VideoModel, 'VideoChannel', MChannelUserId> | 58 | Use<'VideoStreamingPlaylists', MStreamingPlaylist[]> |
41 | 59 | ||
42 | export type MVideoWithCaptions = MVideo & | 60 | // ############################################################################ |
43 | PickWith<VideoModel, 'VideoCaptions', MVideoCaptionLanguage[]> | 61 | |
62 | // Associations with not all their attributes | ||
63 | |||
64 | export type MVideoUserHistory = MVideo & | ||
65 | Use<'UserVideoHistories', MUserVideoHistoryTime[]> | ||
44 | 66 | ||
45 | export type MVideoWithBlacklistLight = MVideo & | 67 | export type MVideoWithBlacklistLight = MVideo & |
46 | PickWith<VideoModel, 'VideoBlacklist', MVideoBlacklistLight> | 68 | Use<'VideoBlacklist', MVideoBlacklistLight> |
47 | 69 | ||
48 | export type MVideoAccountLight = MVideo & | 70 | export type MVideoAccountLight = MVideo & |
49 | PickWith<VideoModel, 'VideoChannel', MChannelAccountLight> | 71 | Use<'VideoChannel', MChannelAccountLight> |
50 | 72 | ||
51 | export type MVideoWithRights = MVideoWithBlacklistLight & MVideoThumbnail & MVideoUser | 73 | export type MVideoWithRights = MVideo & |
74 | Use<'VideoBlacklist', MVideoBlacklistLight> & | ||
75 | Use<'Thumbnails', MThumbnail[]> & | ||
76 | Use<'VideoChannel', MChannelUserId> | ||
52 | 77 | ||
53 | export type MVideoWithStreamingPlaylist = MVideo & | 78 | // ############################################################################ |
54 | PickWith<VideoModel, 'VideoStreamingPlaylists', MStreamingPlaylist[]> | ||
55 | 79 | ||
56 | export type MVideoWithAllFiles = MVideoWithFileThumbnail & MVideoWithStreamingPlaylist | 80 | // All files with some additional associations |
57 | 81 | ||
58 | export type MVideoAccountAllFiles = MVideoWithAllFiles & MVideoAccountLight & MVideoWithBlacklistLight | 82 | export type MVideoWithAllFiles = MVideo & |
59 | export type MVideoAccountAllFilesCaptions = MVideoAccountAllFiles & MVideoWithCaptions | 83 | Use<'VideoFiles', MVideoFile[]> & |
84 | Use<'Thumbnails', MThumbnail[]> & | ||
85 | Use<'VideoStreamingPlaylists', MStreamingPlaylist[]> | ||
60 | 86 | ||
61 | export type MVideoUserHistory = MVideo & | 87 | export type MVideoAccountLightBlacklistAllFiles = MVideo & |
62 | PickWith<VideoModel, 'UserVideoHistories', MUserVideoHistoryTime[]> | 88 | Use<'VideoFiles', MVideoFile[]> & |
89 | Use<'Thumbnails', MThumbnail[]> & | ||
90 | Use<'VideoStreamingPlaylists', MStreamingPlaylist[]> & | ||
91 | Use<'VideoChannel', MChannelAccountLight> & | ||
92 | Use<'VideoBlacklist', MVideoBlacklistLight> | ||
63 | 93 | ||
64 | export type MVideoWithBlacklistThumbnailScheduled = MVideoWithSchedule & MVideoWithBlacklistLight & MVideoWithFileThumbnail | 94 | // ############################################################################ |
95 | |||
96 | // With account | ||
65 | 97 | ||
66 | export type MVideoAccountDefault = MVideo & | 98 | export type MVideoAccountDefault = MVideo & |
67 | PickWith<VideoModel, 'VideoChannel', MChannelActorAccountDefault> | 99 | Use<'VideoChannel', MChannelAccountDefault> |
68 | 100 | ||
69 | export type MVideoThumbnailAccountDefault = MVideoThumbnail & | 101 | export type MVideoThumbnailAccountDefault = MVideo & |
70 | PickWith<VideoModel, 'VideoChannel', MChannelActorAccountDefault> | 102 | Use<'Thumbnails', MThumbnail[]> & |
103 | Use<'VideoChannel', MChannelAccountDefault> | ||
71 | 104 | ||
72 | export type MVideoWithChannelActor = MVideo & | 105 | export type MVideoWithChannelActor = MVideo & |
73 | PickWith<VideoModel, 'VideoChannel', MChannelActor> | 106 | Use<'VideoChannel', MChannelActor> |
74 | 107 | ||
75 | export type MVideoFullLight = MVideoThumbnail & | 108 | export type MVideoFullLight = MVideo & |
76 | MVideoWithBlacklistLight & | 109 | Use<'Thumbnails', MThumbnail[]> & |
77 | MVideoTag & | 110 | Use<'VideoBlacklist', MVideoBlacklistLight> & |
78 | MVideoAccountLight & | 111 | Use<'Tags', MTag[]> & |
79 | MVideoUserHistory & | 112 | Use<'VideoChannel', MChannelAccountLight> & |
80 | MVideoWithFile & | 113 | Use<'UserVideoHistories', MUserVideoHistoryTime[]> & |
81 | MVideoWithSchedule & | 114 | Use<'VideoFiles', MVideoFile[]> & |
82 | MVideoWithStreamingPlaylist & | 115 | Use<'ScheduleVideoUpdate', MScheduleVideoUpdate> & |
83 | MVideoUserHistory | 116 | Use<'VideoStreamingPlaylists', MStreamingPlaylist[]> |
117 | |||
118 | // ############################################################################ | ||
119 | |||
120 | // API | ||
84 | 121 | ||
85 | export type MVideoAP = MVideo & | 122 | export type MVideoAP = MVideo & |
86 | MVideoTag & | 123 | Use<'Tags', MTag[]> & |
87 | MVideoAccountLight & | 124 | Use<'VideoChannel', MChannelAccountLight> & |
88 | MVideoWithStreamingPlaylist & | 125 | Use<'VideoStreamingPlaylists', MStreamingPlaylist[]> & |
89 | MVideoWithCaptions & | 126 | Use<'VideoCaptions', MVideoCaptionLanguage[]> & |
90 | PickWith<VideoModel, 'VideoBlacklist', MVideoBlacklistUnfederated> & | 127 | Use<'VideoBlacklist', MVideoBlacklistUnfederated> & |
91 | PickWith<VideoModel, 'VideoFiles', MVideoFileRedundanciesOpt[]> | 128 | Use<'VideoFiles', MVideoFileRedundanciesOpt[]> |
92 | 129 | ||
93 | export type MVideoAPWithoutCaption = Omit<MVideoAP, 'VideoCaptions'> | 130 | export type MVideoAPWithoutCaption = Omit<MVideoAP, 'VideoCaptions'> |
94 | 131 | ||
95 | export type MVideoDetails = MVideo & | 132 | export type MVideoDetails = MVideo & |
96 | MVideoWithBlacklistLight & | 133 | Use<'VideoBlacklist', MVideoBlacklistLight> & |
97 | MVideoTag & | 134 | Use<'Tags', MTag[]> & |
98 | MVideoAccountLight & | 135 | Use<'VideoChannel', MChannelAccountLight> & |
99 | MVideoWithSchedule & | 136 | Use<'ScheduleVideoUpdate', MScheduleVideoUpdate> & |
100 | MVideoThumbnail & | 137 | Use<'Thumbnails', MThumbnail[]> & |
101 | MVideoUserHistory & | 138 | Use<'UserVideoHistories', MUserVideoHistoryTime[]> & |
102 | PickWith<VideoModel, 'VideoStreamingPlaylists', MStreamingPlaylistRedundancies[]> & | 139 | Use<'VideoStreamingPlaylists', MStreamingPlaylistRedundancies[]> & |
103 | PickWith<VideoModel, 'VideoFiles', MVideoFileRedundanciesOpt[]> | 140 | Use<'VideoFiles', MVideoFileRedundanciesOpt[]> |
141 | |||
142 | export type MVideoForUser = MVideo & | ||
143 | Use<'VideoChannel', MChannelAccountDefault> & | ||
144 | Use<'ScheduleVideoUpdate', MScheduleVideoUpdate> & | ||
145 | Use<'VideoBlacklist', MVideoBlacklistLight> & | ||
146 | Use<'Thumbnails', MThumbnail[]> | ||