]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/models/users/user-notification.model.ts
Add auto follow back support for instances
[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 AUTO_INSTANCE_FOLLOWING = 14
25 }
26
27 export interface VideoInfo {
28 id: number
29 uuid: string
30 name: string
31 }
32
33 export interface ActorInfo {
34 id: number
35 displayName: string
36 name: string
37 host: string
38 avatar?: {
39 path: string
40 }
41 }
42
43 export interface UserNotification {
44 id: number
45 type: UserNotificationType
46 read: boolean
47
48 video?: VideoInfo & {
49 channel: ActorInfo
50 }
51
52 videoImport?: {
53 id: number
54 video?: VideoInfo
55 torrentName?: string
56 magnetUri?: string
57 targetUrl?: string
58 }
59
60 comment?: {
61 id: number
62 threadId: number
63 account: ActorInfo
64 video: VideoInfo
65 }
66
67 videoAbuse?: {
68 id: number
69 video: VideoInfo
70 }
71
72 videoBlacklist?: {
73 id: number
74 video: VideoInfo
75 }
76
77 account?: ActorInfo
78
79 actorFollow?: {
80 id: number
81 follower: ActorInfo
82 state: FollowState
83
84 following: {
85 type: 'account' | 'channel' | 'instance'
86 name: string
87 displayName: string
88 host: string
89 }
90 }
91
92 createdAt: string
93 updatedAt: string
94 }