]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - server/types/models/video/video-import.ts
Merge branch 'master' into release/3.3.0
[github/Chocobozzz/PeerTube.git] / server / types / models / video / video-import.ts
... / ...
CommitLineData
1import { VideoImportModel } from '@server/models/video/video-import'
2import { PickWith, PickWithOpt } from '@shared/core-utils'
3import { MVideo, MVideoAccountLight, MVideoFormattable, MVideoTag, MVideoThumbnail, MVideoWithFile } from './video'
4import { MUser } from '../user/user'
5
6type Use<K extends keyof VideoImportModel, M> = PickWith<VideoImportModel, K, M>
7
8// ############################################################################
9
10export type MVideoImport = Omit<VideoImportModel, 'User' | 'Video'>
11
12export type MVideoImportVideo =
13 MVideoImport &
14 Use<'Video', MVideo>
15
16// ############################################################################
17
18type VideoAssociation = MVideoTag & MVideoAccountLight & MVideoThumbnail
19
20export type MVideoImportDefault =
21 MVideoImport &
22 Use<'User', MUser> &
23 Use<'Video', VideoAssociation>
24
25export type MVideoImportDefaultFiles =
26 MVideoImport &
27 Use<'User', MUser> &
28 Use<'Video', VideoAssociation & MVideoWithFile>
29
30// ############################################################################
31
32// Format for API or AP object
33
34export type MVideoImportFormattable =
35 MVideoImport &
36 PickWithOpt<VideoImportModel, 'Video', MVideoFormattable & MVideoTag>