import { VideoAbuseModel } from '@server/models/abuse/video-abuse' import { VideoCommentAbuseModel } from '@server/models/abuse/video-comment-abuse' import { ApplicationModel } from '@server/models/application/application' import { PluginModel } from '@server/models/server/plugin' import { UserNotificationModel } from '@server/models/user/user-notification' import { PickWith, PickWithOpt } from '@shared/core-utils' import { AbuseModel } from '../../../models/abuse/abuse' import { AccountModel } from '../../../models/account/account' import { ActorModel } from '../../../models/actor/actor' import { ActorFollowModel } from '../../../models/actor/actor-follow' import { ActorImageModel } from '../../../models/actor/actor-image' import { ServerModel } from '../../../models/server/server' import { VideoModel } from '../../../models/video/video' import { VideoBlacklistModel } from '../../../models/video/video-blacklist' import { VideoChannelModel } from '../../../models/video/video-channel' import { VideoCommentModel } from '../../../models/video/video-comment' import { VideoImportModel } from '../../../models/video/video-import' type Use = PickWith // ############################################################################ export module 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 VideoCommentAbuseInclude = Pick & PickWith & PickWith>> export type AbuseInclude = Pick & PickWith & PickWith & 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 PluginInclude = Pick export type ApplicationInclude = Pick } // ############################################################################ export type MUserNotification = Omit // ############################################################################ export type UserNotificationModelForApi = MUserNotification & Use<'Video', UserNotificationIncludes.VideoIncludeChannel> & Use<'Comment', UserNotificationIncludes.VideoCommentInclude> & Use<'Abuse', UserNotificationIncludes.AbuseInclude> & Use<'VideoBlacklist', UserNotificationIncludes.VideoBlacklistInclude> & Use<'VideoImport', UserNotificationIncludes.VideoImportInclude> & Use<'ActorFollow', UserNotificationIncludes.ActorFollowInclude> & Use<'Plugin', UserNotificationIncludes.PluginInclude> & Use<'Application', UserNotificationIncludes.ApplicationInclude> & Use<'Account', UserNotificationIncludes.AccountIncludeActor>