import { ImageType, Model } from "./Model"; import { AttachmentView } from "./Attachment"; export type User = { name: string; email?: string; emailVerifyAt: number; unmuteAt?: number; unbanAt?: number; } & Model; export type UserView = { profile: UserProfileView } & User; export enum UserAttachType { AVATAR, WRAPPER, DEFAULT_AVATAR, DEFAULT_WRAPPER, } export type UserProfile = { userId: number; avatarType: ImageType; wrapperType: ImageType; exp: number; sex?: number; birthdate?: number; qq?: string; description: string; lastLoginIP?: string; lastLoginAt?: number; updatedAt?: number; } export type UserProfileView = { attachmentList?: AttachmentView[] } & UserProfile export type UserToken = { value: string; expireAt: number; } export type RegisterRequest = { name: string; password: string; email?: string; } export type LoginRequest = { user: string; password: string; } // 登录返回 export type LoginResponse = { id: number; token: string; expireAt: number; } export type LoginUser = { token?: LoginToken; user?: UserView } export type LoginToken = { id?: number; } & UserToken; export enum LoginType { ALERT, IFRAME, REDIRECT } export type UserLevelType = { exp: number; // 经验数值,和 UserData.exp 一样 value: number; // 经验对应等级,[0, 8] percent: number; // 该经验在该等级的百分比 [0, 1] nextLevelUp: number; // 下一级经验值 }