import { UserNotificationModel } from '../../../models/account/user-notification' import { PickWith, PickWithOpt } from '../../utils' import { VideoModel } from '../../../models/video/video' import { ActorModel } from '../../../models/activitypub/actor' import { ServerModel } from '../../../models/server/server' import { AvatarModel } from '../../../models/avatar/avatar' import { VideoChannelModel } from '../../../models/video/video-channel' import { AccountModel } from '../../../models/account/account' import { VideoCommentModel } from '../../../models/video/video-comment' import { VideoAbuseModel } from '../../../models/video/video-abuse' import { VideoBlacklistModel } from '../../../models/video/video-blacklist' import { VideoImportModel } from '../../../models/video/video-import' import { ActorFollowModel } from '../../../models/activitypub/actor-follow' type Use = PickWith // ############################################################################ export namespace UserNotificationIncludes { export type VideoInclude = Pick export type VideoIncludeChannel = VideoInclude & PickWith export type ActorInclude = Pick & PickWith> & PickWith> export type VideoChannelInclude = Pick export type VideoChannelIncludeActor = VideoChannelInclude & PickWith export type AccountInclude = Pick export type AccountIncludeActor = AccountInclude & PickWith export type VideoCommentInclude = Pick & PickWith & PickWith export type VideoAbuseInclude = Pick & PickWith export type VideoBlacklistInclude = Pick & PickWith export type VideoImportInclude = Pick & PickWith export type ActorFollower = Pick & PickWith & PickWith> & PickWithOpt> export type ActorFollowing = Pick & PickWith & PickWith & PickWith> export type ActorFollowInclude = Pick & PickWith & PickWith } // ############################################################################ export type MUserNotification = Omit // ############################################################################ export type UserNotificationModelForApi = MUserNotification & Use<'Video', UserNotificationIncludes.VideoIncludeChannel> & Use<'Comment', UserNotificationIncludes.VideoCommentInclude> & Use<'VideoAbuse', UserNotificationIncludes.VideoAbuseInclude> & Use<'VideoBlacklist', UserNotificationIncludes.VideoBlacklistInclude> & Use<'VideoImport', UserNotificationIncludes.VideoImportInclude> & Use<'ActorFollow', UserNotificationIncludes.ActorFollowInclude> & Use<'Account', UserNotificationIncludes.AccountIncludeActor>