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
16 nsfwPolicy: NSFWPolicyType
18 adminFlags?: UserAdminFlag
20 autoPlayVideo: boolean
21 autoPlayNextVideo: boolean
22 autoPlayNextVideoPlaylist: boolean
24 // @deprecated in favour of p2pEnabled
25 webTorrentEnabled: boolean
28 videosHistoryEnabled: boolean
29 videoLanguages: string[]
37 videoQuotaDaily: number
38 videoQuotaUsed?: number
39 videoQuotaUsedDaily?: number
44 abusesAcceptedCount?: number
45 abusesCreatedCount?: number
47 videoCommentsCount?: number
52 notificationSettings?: UserNotificationSetting
53 videoChannels?: VideoChannel[]
56 blockedReason?: string
58 noInstanceConfigWarningModal: boolean
59 noWelcomeModal: boolean
60 noAccountSetupWarningModal: boolean
64 pluginAuth: string | null
66 lastLoginDate: Date | null
68 twoFactorEnabled: boolean
71 export interface MyUserSpecialPlaylist {
74 type: VideoPlaylistType
77 export interface MyUser extends User {
78 specialPlaylists: MyUserSpecialPlaylist[]