aboutsummaryrefslogtreecommitdiffhomepage
path: root/packages/models/src/users/user.model.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/models/src/users/user.model.ts')
-rw-r--r--packages/models/src/users/user.model.ts78
1 files changed, 78 insertions, 0 deletions
diff --git a/packages/models/src/users/user.model.ts b/packages/models/src/users/user.model.ts
new file mode 100644
index 000000000..57b4c1aab
--- /dev/null
+++ b/packages/models/src/users/user.model.ts
@@ -0,0 +1,78 @@
1import { Account } from '../actors/index.js'
2import { VideoChannel } from '../videos/channel/video-channel.model.js'
3import { NSFWPolicyType } from '../videos/nsfw-policy.type.js'
4import { VideoPlaylistType_Type } from '../videos/playlist/video-playlist-type.model.js'
5import { UserAdminFlagType } from './user-flag.model.js'
6import { UserNotificationSetting } from './user-notification-setting.model.js'
7import { UserRoleType } from './user-role.js'
8
9export interface User {
10 id: number
11 username: string
12 email: string
13 pendingEmail: string | null
14
15 emailVerified: boolean
16 emailPublic: boolean
17 nsfwPolicy: NSFWPolicyType
18
19 adminFlags?: UserAdminFlagType
20
21 autoPlayVideo: boolean
22 autoPlayNextVideo: boolean
23 autoPlayNextVideoPlaylist: boolean
24
25 p2pEnabled: boolean
26
27 videosHistoryEnabled: boolean
28 videoLanguages: string[]
29
30 role: {
31 id: UserRoleType
32 label: string
33 }
34
35 videoQuota: number
36 videoQuotaDaily: number
37 videoQuotaUsed?: number
38 videoQuotaUsedDaily?: number
39
40 videosCount?: number
41
42 abusesCount?: number
43 abusesAcceptedCount?: number
44 abusesCreatedCount?: number
45
46 videoCommentsCount?: number
47
48 theme: string
49
50 account: Account
51 notificationSettings?: UserNotificationSetting
52 videoChannels?: VideoChannel[]
53
54 blocked: boolean
55 blockedReason?: string
56
57 noInstanceConfigWarningModal: boolean
58 noWelcomeModal: boolean
59 noAccountSetupWarningModal: boolean
60
61 createdAt: Date
62
63 pluginAuth: string | null
64
65 lastLoginDate: Date | null
66
67 twoFactorEnabled: boolean
68}
69
70export interface MyUserSpecialPlaylist {
71 id: number
72 name: string
73 type: VideoPlaylistType_Type
74}
75
76export interface MyUser extends User {
77 specialPlaylists: MyUserSpecialPlaylist[]
78}