Initial project

This commit is contained in:
Timi
2025-07-08 16:33:11 +08:00
parent 1a5a16be74
commit f862530142
80 changed files with 8301 additions and 129 deletions

89
src/types/User.ts Normal file
View File

@ -0,0 +1,89 @@
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; // 下一级经验值
}