video-blacklist.ts 1.0 KB

123456789101112131415161718192021222324252627
  1. import { VideoBlacklistModel } from '../../../models/video/video-blacklist'
  2. import { PickWith } from '@server/typings/utils'
  3. import { MVideo, MVideoFormattable } from './video'
  4. type Use<K extends keyof VideoBlacklistModel, M> = PickWith<VideoBlacklistModel, K, M>
  5. // ############################################################################
  6. export type MVideoBlacklist = Omit<VideoBlacklistModel, 'Video'>
  7. export type MVideoBlacklistLight = Pick<MVideoBlacklist, 'id' | 'reason' | 'unfederated'>
  8. export type MVideoBlacklistUnfederated = Pick<MVideoBlacklist, 'unfederated'>
  9. // ############################################################################
  10. export type MVideoBlacklistLightVideo = MVideoBlacklistLight &
  11. Use<'Video', MVideo>
  12. export type MVideoBlacklistVideo = MVideoBlacklist &
  13. Use<'Video', MVideo>
  14. // ############################################################################
  15. // Format for API or AP object
  16. export type MVideoBlacklistFormattable = MVideoBlacklist &
  17. Use<'Video', MVideoFormattable>