1 import { Account } from '../actors'
2 import { VideoChannel } from '../videos/channel/video-channel.model'
3 import { UserRole } from './user-role'
4 import { NSFWPolicyType } from '../videos/nsfw-policy.type'
5 import { UserNotificationSetting } from './user-notification-setting.model'
6 import { UserAdminFlag } from './user-flag.model'
7 import { VideoPlaylistType } from '../videos/playlist/video-playlist-type.model'
9 export interface User {
13 pendingEmail: string | null
15 emailVerified: boolean
17 nsfwPolicy: NSFWPolicyType
19 adminFlags?: UserAdminFlag
21 autoPlayVideo: boolean
22 autoPlayNextVideo: boolean
23 autoPlayNextVideoPlaylist: boolean
25 // @deprecated in favour of p2pEnabled
26 webTorrentEnabled: boolean
29 videosHistoryEnabled: boolean
30 videoLanguages: string[]
38 videoQuotaDaily: number
39 videoQuotaUsed?: number
40 videoQuotaUsedDaily?: number
45 abusesAcceptedCount?: number
46 abusesCreatedCount?: number
48 videoCommentsCount?: number
53 notificationSettings?: UserNotificationSetting
54 videoChannels?: VideoChannel[]
57 blockedReason?: string
59 noInstanceConfigWarningModal: boolean
60 noWelcomeModal: boolean
61 noAccountSetupWarningModal: boolean
65 pluginAuth: string | null
67 lastLoginDate: Date | null
69 twoFactorEnabled: boolean
72 export interface MyUserSpecialPlaylist {
75 type: VideoPlaylistType
78 export interface MyUser extends User {
79 specialPlaylists: MyUserSpecialPlaylist[]