Stronger model typings
[oweals/peertube.git] / server / typings / models / video / video-redundancy.ts
1 import { VideoRedundancyModel } from '../../../models/redundancy/video-redundancy'
2 import { PickWith } from '@server/typings/utils'
3 import { MStreamingPlaylistVideo, MVideoFile, MVideoFileVideo } from '@server/typings/models'
4
5 export type MVideoRedundancy = Omit<VideoRedundancyModel, 'VideoFile' | 'VideoStreamingPlaylist' | 'Actor'>
6
7 export type MVideoRedundancyFileUrl = Pick<MVideoRedundancy, 'fileUrl'>
8
9 export type MVideoRedundancyFile = MVideoRedundancy &
10   PickWith<VideoRedundancyModel, 'VideoFile', MVideoFile>
11
12 export type MVideoRedundancyFileVideo = MVideoRedundancy &
13   PickWith<VideoRedundancyModel, 'VideoFile', MVideoFileVideo>
14
15 export type MVideoRedundancyStreamingPlaylistVideo = MVideoRedundancy &
16   PickWith<VideoRedundancyModel, 'VideoStreamingPlaylist', MStreamingPlaylistVideo>
17
18 export type MVideoRedundancyVideo = MVideoRedundancyFileVideo | MVideoRedundancyStreamingPlaylistVideo