import { VideoCommentModel } from '../../../models/video/video-comment' import { PickWith, PickWithOpt } from '../../utils' import { MAccountDefault, MAccountFormattable, MAccountUrl } from '../account' import { MVideoAccountLight, MVideoFeed, MVideoIdUrl, MVideoUrl } from './video' type Use = PickWith // ############################################################################ export type MComment = Omit export type MCommentTotalReplies = MComment & { totalReplies?: number } export type MCommentId = Pick export type MCommentUrl = Pick // ############################################################################ export type MCommentOwner = MComment & Use<'Account', MAccountDefault> export type MCommentVideo = MComment & Use<'Video', MVideoAccountLight> export type MCommentReply = MComment & Use<'InReplyToVideoComment', MComment> export type MCommentOwnerVideo = MComment & Use<'Account', MAccountDefault> & Use<'Video', MVideoAccountLight> export type MCommentOwnerVideoReply = MComment & Use<'Account', MAccountDefault> & Use<'Video', MVideoAccountLight> & Use<'InReplyToVideoComment', MComment> export type MCommentOwnerReplyVideoLight = MComment & Use<'Account', MAccountDefault> & Use<'InReplyToVideoComment', MComment> & Use<'Video', MVideoIdUrl> export type MCommentOwnerVideoFeed = MCommentOwner & Use<'Video', MVideoFeed> // ############################################################################ export type MCommentAPI = MComment & { totalReplies: number } // ############################################################################ // Format for API or AP object export type MCommentFormattable = MCommentTotalReplies & Use<'Account', MAccountFormattable> export type MCommentAP = MComment & Use<'Account', MAccountUrl> & PickWithOpt & PickWithOpt