export interface LoginParams { username?: string; password?: string; } export interface LoginResult { accessToken: string; refreshToken: string; userId: number; expiresTime: number; } export interface RegisterParams { username: string; password: string; } export interface ResetPasswordParams { password: string; mobile: string; code: string; } export interface AuthPermissionInfo { user: UserInfo; roles: string[]; permissions: string[]; menus: unknown[]; } export interface UserInfo { id: number; username: string; nickname: string; avatar: string; email: string; mobile: string; sex: number; status: number; loginIp: string; loginDate: string; createTime: string; dept?: { id: number; name: string }; roles?: { id: number; name: string }[]; posts?: { id: number; name: string }[]; } export interface MenuRecord { id: number; parentId: number; name: string; path: string; component: string; componentName?: string; icon?: string; type: number; // 1=dir, 2=menu, 3=button permission?: string; sort: number; status: number; visible: boolean; keepAlive: boolean; alwaysShow?: boolean; activeMenu?: string; canTo?: boolean; queryParams?: Record; isExternal?: boolean; children?: MenuRecord[]; } export interface UpdateProfileParams { nickname?: string; email?: string; mobile?: string; sex?: number; avatar?: string; } export interface UpdatePasswordParams { oldPassword: string; newPassword: string; }