]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/typings/models/video/video-comment.ts
Stronger model typings
[github/Chocobozzz/PeerTube.git] / server / typings / models / video / video-comment.ts
1 import { VideoCommentModel } from '../../../models/video/video-comment'
2 import { PickWith } from '../../utils'
3 import { MAccountDefault } from '../account'
4 import { MVideoAccountDefault, MVideoAccountLight, MVideoFeed, MVideoIdUrl } from './video'
5
6 export type MComment = Omit<VideoCommentModel, 'OriginVideoComment' | 'InReplyToVideoComment' | 'Video' | 'Account'>
7 export type MCommentId = Pick<MComment, 'id'>
8
9 export type MCommentAPI = MComment & { totalReplies: number }
10
11 export type MCommentOwner = MComment &
12 PickWith<VideoCommentModel, 'Account', MAccountDefault>
13
14 export type MCommentVideo = MComment &
15 PickWith<VideoCommentModel, 'Video', MVideoAccountLight>
16
17 export type MCommentReply = MComment &
18 PickWith<VideoCommentModel, 'InReplyToVideoComment', MComment>
19
20 export type MCommentOwnerReply = MCommentOwner & MCommentReply
21 export type MCommentOwnerVideo = MCommentOwner & MCommentVideo
22 export type MCommentReplyVideo = MCommentReply & MCommentVideo
23 export type MCommentOwnerVideoReply = MCommentOwnerVideo & MCommentReply
24
25 export type MCommentOwnerReplyVideoLight = MCommentOwnerReply &
26 PickWith<VideoCommentModel, 'Video', MVideoIdUrl>
27
28 export type MCommentOwnerVideoFeed = MCommentOwner &
29 PickWith<VideoCommentModel, 'Video', MVideoFeed>