]>
Commit | Line | Data |
---|---|---|
1 | import { VideoAbuseModel } from '../../../models/video/video-abuse' | |
2 | import { PickWith } from '@shared/core-utils' | |
3 | import { MVideoAccountLightBlacklistAllFiles, MVideo } from './video' | |
4 | import { MAccountDefault, MAccountFormattable } from '../account' | |
5 | ||
6 | type Use<K extends keyof VideoAbuseModel, M> = PickWith<VideoAbuseModel, K, M> | |
7 | ||
8 | // ############################################################################ | |
9 | ||
10 | export type MVideoAbuse = Omit<VideoAbuseModel, 'Account' | 'Video' | 'toActivityPubObject'> | |
11 | ||
12 | // ############################################################################ | |
13 | ||
14 | export type MVideoAbuseId = Pick<VideoAbuseModel, 'id'> | |
15 | ||
16 | export type MVideoAbuseVideo = | |
17 | MVideoAbuse & | |
18 | Pick<VideoAbuseModel, 'toActivityPubObject'> & | |
19 | Use<'Video', MVideo> | |
20 | ||
21 | export type MVideoAbuseAccountVideo = | |
22 | MVideoAbuse & | |
23 | Pick<VideoAbuseModel, 'toActivityPubObject'> & | |
24 | Use<'Video', MVideoAccountLightBlacklistAllFiles> & | |
25 | Use<'Account', MAccountDefault> | |
26 | ||
27 | // ############################################################################ | |
28 | ||
29 | // Format for API or AP object | |
30 | ||
31 | export type MVideoAbuseFormattable = | |
32 | MVideoAbuse & | |
33 | Use<'Account', MAccountFormattable> & | |
34 | Use<'Video', Pick<MVideoAccountLightBlacklistAllFiles, | |
35 | 'id' | 'uuid' | 'name' | 'nsfw' | 'getMiniatureStaticPath' | 'isBlacklisted' | 'VideoChannel'>> |