video-caption.ts 920 B

123456789101112131415161718192021222324
  1. import { VideoCaptionModel } from '../../../models/video/video-caption'
  2. import { FunctionProperties, PickWith } from '@server/typings/utils'
  3. import { MVideo, MVideoUUID } from './video'
  4. type Use<K extends keyof VideoCaptionModel, M> = PickWith<VideoCaptionModel, K, M>
  5. // ############################################################################
  6. export type MVideoCaption = Omit<VideoCaptionModel, 'Video'>
  7. // ############################################################################
  8. export type MVideoCaptionLanguage = Pick<MVideoCaption, 'language'>
  9. export type MVideoCaptionVideo = MVideoCaption &
  10. Use<'Video', Pick<MVideo, 'id' | 'remote' | 'uuid'>>
  11. // ############################################################################
  12. // Format for API or AP object
  13. export type MVideoCaptionFormattable = FunctionProperties<MVideoCaption> &
  14. Pick<MVideoCaption, 'language'> &
  15. Use<'Video', MVideoUUID>