import { VideoFileModel } from '../../../models/video/video-file' import { PickWith, PickWithOpt } from '../../utils' import { MVideo, MVideoUUID } from './video' import { MVideoRedundancyFileUrl } from './video-redundancy' import { MStreamingPlaylistVideo, MStreamingPlaylist } from './video-streaming-playlist' type Use = PickWith // ############################################################################ export type MVideoFile = Omit export type MVideoFileVideo = MVideoFile & Use<'Video', MVideo> export type MVideoFileStreamingPlaylist = MVideoFile & Use<'VideoStreamingPlaylist', MStreamingPlaylist> export type MVideoFileStreamingPlaylistVideo = MVideoFile & Use<'VideoStreamingPlaylist', MStreamingPlaylistVideo> export type MVideoFileVideoUUID = MVideoFile & Use<'Video', MVideoUUID> export type MVideoFileRedundanciesOpt = MVideoFile & PickWithOpt export function isStreamingPlaylistFile (file: any): file is MVideoFileStreamingPlaylist { return !!file.videoStreamingPlaylistId } export function isWebtorrentFile (file: any): file is MVideoFileVideo { return !!file.videoId }