]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/typings/models/video/video-import.ts
Cleanup model types
[github/Chocobozzz/PeerTube.git] / server / typings / models / video / video-import.ts
1 import { VideoImportModel } from '@server/models/video/video-import'
2 import { PickWith } from '@server/typings/utils'
3 import { MUser, MVideo, MVideoAccountLight, MVideoTag, MVideoThumbnail, MVideoWithFile } from '@server/typings/models'
4
5 type Use<K extends keyof VideoImportModel, M> = PickWith<VideoImportModel, K, M>
6
7 // ############################################################################
8
9 export type MVideoImport = Omit<VideoImportModel, 'User' | 'Video'>
10
11 export type MVideoImportVideo = MVideoImport &
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>