+import { FollowState } from '../actors'
+
export enum UserNotificationType {
NEW_VIDEO_FROM_SUBSCRIPTION = 1,
NEW_COMMENT_ON_MY_VIDEO = 2,
NEW_VIDEO_ABUSE_FOR_MODERATORS = 3,
+
BLACKLIST_ON_MY_VIDEO = 4,
- UNBLACKLIST_ON_MY_VIDEO = 5
+ UNBLACKLIST_ON_MY_VIDEO = 5,
+
+ MY_VIDEO_PUBLISHED = 6,
+
+ MY_VIDEO_IMPORT_SUCCESS = 7,
+ MY_VIDEO_IMPORT_ERROR = 8,
+
+ NEW_USER_REGISTRATION = 9,
+ NEW_FOLLOW = 10,
+ COMMENT_MENTION = 11,
+
+ VIDEO_AUTO_BLACKLIST_FOR_MODERATORS = 12,
+
+ NEW_INSTANCE_FOLLOWER = 13
}
-interface VideoInfo {
+export interface VideoInfo {
id: number
uuid: string
name: string
}
+export interface ActorInfo {
+ id: number
+ displayName: string
+ name: string
+ host: string
+ avatar?: {
+ path: string
+ }
+}
+
export interface UserNotification {
id: number
type: UserNotificationType
read: boolean
video?: VideoInfo & {
- channel: {
- id: number
- displayName: string
- }
+ channel: ActorInfo
+ }
+
+ videoImport?: {
+ id: number
+ video?: VideoInfo
+ torrentName?: string
+ magnetUri?: string
+ targetUrl?: string
}
comment?: {
id: number
- account: {
- id: number
- displayName: string
- }
+ threadId: number
+ account: ActorInfo
+ video: VideoInfo
}
videoAbuse?: {
video: VideoInfo
}
+ account?: ActorInfo
+
+ actorFollow?: {
+ id: number
+ follower: ActorInfo
+ state: FollowState
+ following: {
+ type: 'account' | 'channel'
+ name: string
+ displayName: string
+ }
+ }
+
createdAt: string
updatedAt: string
}