78 lines
1.6 KiB
TypeScript
78 lines
1.6 KiB
TypeScript
import { Account } from '../actors'
|
|
import { VideoChannel } from '../videos/channel/video-channel.model'
|
|
import { UserRole } from './user-role'
|
|
import { NSFWPolicyType } from '../videos/nsfw-policy.type'
|
|
import { UserNotificationSetting } from './user-notification-setting.model'
|
|
import { UserAdminFlag } from './user-flag.model'
|
|
import { VideoPlaylistType } from '../videos/playlist/video-playlist-type.model'
|
|
|
|
export interface User {
|
|
id: number
|
|
username: string
|
|
email: string
|
|
pendingEmail: string | null
|
|
|
|
emailVerified: boolean
|
|
emailPublic: boolean
|
|
nsfwPolicy: NSFWPolicyType
|
|
|
|
adminFlags?: UserAdminFlag
|
|
|
|
autoPlayVideo: boolean
|
|
autoPlayNextVideo: boolean
|
|
autoPlayNextVideoPlaylist: boolean
|
|
|
|
p2pEnabled: boolean
|
|
|
|
videosHistoryEnabled: boolean
|
|
videoLanguages: string[]
|
|
|
|
role: {
|
|
id: UserRole
|
|
label: string
|
|
}
|
|
|
|
videoQuota: number
|
|
videoQuotaDaily: number
|
|
videoQuotaUsed?: number
|
|
videoQuotaUsedDaily?: number
|
|
|
|
videosCount?: number
|
|
|
|
abusesCount?: number
|
|
abusesAcceptedCount?: number
|
|
abusesCreatedCount?: number
|
|
|
|
videoCommentsCount?: number
|
|
|
|
theme: string
|
|
|
|
account: Account
|
|
notificationSettings?: UserNotificationSetting
|
|
videoChannels?: VideoChannel[]
|
|
|
|
blocked: boolean
|
|
blockedReason?: string
|
|
|
|
noInstanceConfigWarningModal: boolean
|
|
noWelcomeModal: boolean
|
|
noAccountSetupWarningModal: boolean
|
|
|
|
createdAt: Date
|
|
|
|
pluginAuth: string | null
|
|
|
|
lastLoginDate: Date | null
|
|
|
|
twoFactorEnabled: boolean
|
|
}
|
|
|
|
export interface MyUserSpecialPlaylist {
|
|
id: number
|
|
name: string
|
|
type: VideoPlaylistType
|
|
}
|
|
|
|
export interface MyUser extends User {
|
|
specialPlaylists: MyUserSpecialPlaylist[]
|
|
}
|