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