import { VideoPlaylistElementModel } from '@server/models/video/video-playlist-element' import { PickWith } from '@server/typings/utils' import { MVideoFormattable, MVideoThumbnail, MVideoUrl } from './video' import { MVideoPlaylistPrivacy } from './video-playlist' type Use = PickWith // ############################################################################ export type MVideoPlaylistElement = Omit // ############################################################################ export type MVideoPlaylistElementId = Pick export type MVideoPlaylistElementLight = Pick // ############################################################################ export type MVideoPlaylistVideoThumbnail = MVideoPlaylistElement & Use<'Video', MVideoThumbnail> export type MVideoPlaylistElementVideoUrlPlaylistPrivacy = MVideoPlaylistElement & Use<'Video', MVideoUrl> & Use<'VideoPlaylist', MVideoPlaylistPrivacy> // ############################################################################ // Format for API or AP object export type MVideoPlaylistElementFormattable = MVideoPlaylistElement & Use<'Video', MVideoFormattable> export type MVideoPlaylistElementAP = MVideoPlaylistElement & Use<'Video', MVideoUrl>