]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/models/users/user-notification.model.ts
WIP plugins: working hook on server side
[github/Chocobozzz/PeerTube.git] / shared / models / users / user-notification.model.ts
1 import { FollowState } from '../actors'
2
3 export enum UserNotificationType {
4 NEW_VIDEO_FROM_SUBSCRIPTION = 1,
5 NEW_COMMENT_ON_MY_VIDEO = 2,
6 NEW_VIDEO_ABUSE_FOR_MODERATORS = 3,
7
8 BLACKLIST_ON_MY_VIDEO = 4,
9 UNBLACKLIST_ON_MY_VIDEO = 5,
10
11 MY_VIDEO_PUBLISHED = 6,
12
13 MY_VIDEO_IMPORT_SUCCESS = 7,
14 MY_VIDEO_IMPORT_ERROR = 8,
15
16 NEW_USER_REGISTRATION = 9,
17 NEW_FOLLOW = 10,
18 COMMENT_MENTION = 11,
19
20 VIDEO_AUTO_BLACKLIST_FOR_MODERATORS = 12,
21
22 NEW_INSTANCE_FOLLOWER = 13
23 }
24
25 export interface VideoInfo {
26 id: number
27 uuid: string
28 name: string
29 }
30
31 export interface ActorInfo {
32 id: number
33 displayName: string
34 name: string
35 host: string
36 avatar?: {
37 path: string
38 }
39 }
40
41 export interface UserNotification {
42 id: number
43 type: UserNotificationType
44 read: boolean
45
46 video?: VideoInfo & {
47 channel: ActorInfo
48 }
49
50 videoImport?: {
51 id: number
52 video?: VideoInfo
53 torrentName?: string
54 magnetUri?: string
55 targetUrl?: string
56 }
57
58 comment?: {
59 id: number
60 threadId: number
61 account: ActorInfo
62 video: VideoInfo
63 }
64
65 videoAbuse?: {
66 id: number
67 video: VideoInfo
68 }
69
70 videoBlacklist?: {
71 id: number
72 video: VideoInfo
73 }
74
75 account?: ActorInfo
76
77 actorFollow?: {
78 id: number
79 follower: ActorInfo
80 state: FollowState
81 following: {
82 type: 'account' | 'channel'
83 name: string
84 displayName: string
85 }
86 }
87
88 createdAt: string
89 updatedAt: string
90 }