import request from '@/utils/request'

export interface LoginRequest {
  username: string
  password: string
}

export interface LoginResponse {
  token: string
  user: UserInfo
}

export interface UserInfo {
  id: number
  username: string
  nickname: string
  email: string
  phone: string
  avatar: string
  roles: string[]
  permissions: string[]
}

export interface UpdatePasswordRequest {
  oldPassword: string
  newPassword: string
}

export const authApi = {
  login: (data: LoginRequest) => 
    request.post<LoginResponse>('/auth/login', data),
  
  logout: () => 
    request.post<void>('/auth/logout'),
  
  getCurrentUser: () => 
    request.get<UserInfo>('/auth/current'),
  
  updatePassword: (data: UpdatePasswordRequest) => 
    request.put<void>('/auth/password', data),
  
  refreshToken: () => 
    request.post<LoginResponse>('/auth/refresh'),
}
