import client from './client'; export interface LoginRequest { username: string; password: string; } export interface UserInfo { id: string; username: string; email?: string; phone?: string; display_name?: string; avatar_url?: string; status: string; roles: RoleInfo[]; } export interface RoleInfo { id: string; name: string; code: string; description?: string; is_system: boolean; } export interface LoginResponse { access_token: string; refresh_token: string; expires_in: number; user: UserInfo; } export async function login(req: LoginRequest): Promise { const { data } = await client.post<{ success: boolean; data: LoginResponse }>( '/auth/login', req ); return data.data; } export async function refresh(refreshToken: string): Promise { const { data } = await client.post<{ success: boolean; data: LoginResponse }>( '/auth/refresh', { refresh_token: refreshToken } ); return data.data; } export async function logout(): Promise { await client.post('/auth/logout'); }