import { readingApi } from './client' import type { LoginRequest, LoginResponse as ApiLoginResponse, ResultLoginResponse, ResultUserInfoResponse, UserInfoResponse, } from './generated/model' export type LoginParams = LoginRequest // Java 后端返回的平铺结构(保持与现有业务使用一致) export interface LoginResponse extends Required> { role: 'admin' | 'school' | 'teacher' | 'parent' tenantId?: number } export interface UserProfile { id: number; name: string; role: 'admin' | 'school' | 'teacher'; tenantId?: number; tenantName?: string; email?: string; phone?: string; avatar?: string; } // 登录 export function login(params: LoginParams): Promise { return readingApi.login(params).then((res) => { const wrapped = res as ResultLoginResponse const data = (wrapped.data ?? {}) as ApiLoginResponse return { token: data.token ?? '', userId: data.userId ?? 0, username: data.username ?? '', name: data.name ?? '', role: (data.role as LoginResponse['role']) ?? 'teacher', tenantId: data.tenantId, } }) } // 登出 export function logout(): Promise { return readingApi.logout().then(() => undefined) } // 刷新Token export function refreshToken(): Promise<{ token: string }> { // OpenAPI 目前未定义 refresh 接口,暂时保留原有调用路径以兼容后端 const { http } = require('./index') return http.post('/auth/refresh') } // 获取当前用户信息 export function getProfile(): Promise { return readingApi.getCurrentUser().then((res) => { const wrapped = res as ResultUserInfoResponse const data = (wrapped.data ?? {}) as UserInfoResponse return { id: data.id ?? 0, name: data.name ?? '', role: (data.role as UserProfile['role']) ?? 'teacher', tenantId: data.tenantId, tenantName: undefined, email: data.email, phone: data.phone, avatar: data.avatarUrl, } }) }