PeerTube/shared/models/users/user-notification.model.ts

106 lines
1.6 KiB
TypeScript
Raw Normal View History

import { FollowState } from '../actors'
2018-12-26 03:36:24 -06:00
export enum UserNotificationType {
NEW_VIDEO_FROM_SUBSCRIPTION = 1,
NEW_COMMENT_ON_MY_VIDEO = 2,
2020-07-08 08:51:46 -05:00
NEW_ABUSE_FOR_MODERATORS = 3,
2019-01-08 04:26:41 -06:00
2018-12-26 03:36:24 -06:00
BLACKLIST_ON_MY_VIDEO = 4,
UNBLACKLIST_ON_MY_VIDEO = 5,
2019-01-08 04:26:41 -06:00
MY_VIDEO_PUBLISHED = 6,
2019-01-08 04:26:41 -06:00
MY_VIDEO_IMPORT_SUCCESS = 7,
MY_VIDEO_IMPORT_ERROR = 8,
2019-01-08 04:26:41 -06:00
NEW_USER_REGISTRATION = 9,
NEW_FOLLOW = 10,
COMMENT_MENTION = 11,
VIDEO_AUTO_BLACKLIST_FOR_MODERATORS = 12,
NEW_INSTANCE_FOLLOWER = 13,
AUTO_INSTANCE_FOLLOWING = 14
2018-12-26 03:36:24 -06:00
}
export interface VideoInfo {
2018-12-26 03:36:24 -06:00
id: number
uuid: string
name: string
}
export interface ActorInfo {
id: number
displayName: string
name: string
host: string
avatar?: {
path: string
}
}
2018-12-26 03:36:24 -06:00
export interface UserNotification {
id: number
type: UserNotificationType
read: boolean
video?: VideoInfo & {
channel: ActorInfo
2018-12-26 03:36:24 -06:00
}
videoImport?: {
id: number
video?: VideoInfo
torrentName?: string
magnetUri?: string
targetUrl?: string
}
2018-12-26 03:36:24 -06:00
comment?: {
id: number
threadId: number
account: ActorInfo
video: VideoInfo
2018-12-26 03:36:24 -06:00
}
2020-07-01 09:05:30 -05:00
abuse?: {
2018-12-26 03:36:24 -06:00
id: number
2020-07-01 09:05:30 -05:00
video?: VideoInfo
comment?: {
threadId: number
video: {
uuid: string
}
}
account?: ActorInfo
2018-12-26 03:36:24 -06:00
}
videoBlacklist?: {
id: number
video: VideoInfo
}
account?: ActorInfo
actorFollow?: {
id: number
follower: ActorInfo
state: FollowState
following: {
type: 'account' | 'channel' | 'instance'
name: string
displayName: string
host: string
}
}
2018-12-26 03:36:24 -06:00
createdAt: string
updatedAt: string
}