import { VideoRedundancyModel } from '../../../models/redundancy/video-redundancy' import { PickWith, PickWithOpt } from '@server/typings/utils' import { VideoStreamingPlaylistModel } from '@server/models/video/video-streaming-playlist' import { VideoFileModel } from '@server/models/video/video-file' import { MVideoFile, MVideoFileVideo } from './video-file' import { MStreamingPlaylistVideo } from './video-streaming-playlist' import { MVideoUrl } from './video' type Use = PickWith // ############################################################################ export type MVideoRedundancy = Omit export type MVideoRedundancyFileUrl = Pick // ############################################################################ export type MVideoRedundancyFile = MVideoRedundancy & Use<'VideoFile', MVideoFile> export type MVideoRedundancyFileVideo = MVideoRedundancy & Use<'VideoFile', MVideoFileVideo> export type MVideoRedundancyStreamingPlaylistVideo = MVideoRedundancy & Use<'VideoStreamingPlaylist', MStreamingPlaylistVideo> export type MVideoRedundancyVideo = MVideoRedundancy & Use<'VideoFile', MVideoFileVideo> & Use<'VideoStreamingPlaylist', MStreamingPlaylistVideo> // ############################################################################ // Format for API or AP object export type MVideoRedundancyAP = MVideoRedundancy & PickWithOpt> & PickWithOpt>