90 lines
1.4 KiB
TypeScript
90 lines
1.4 KiB
TypeScript
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; // 下一级经验值
|
|
}
|