import { request, type ApiResponse } from './request'

export interface LoginParams {
  username: string
  password: string
}

export interface LoginResponse extends ApiResponse {
  token: string
}

export interface UserInfoResponse extends ApiResponse {
  user: {
    userName?: string
    nickName?: string
  }
  roles?: string[]
  permissions?: string[]
}

export function loginApi(data: LoginParams) {
  return request<LoginResponse>('/login', {
    method: 'POST',
    body: JSON.stringify(data),
  })
}

export function getUserInfo() {
  return request<UserInfoResponse>('/getInfo')
}

export function logoutApi() {
  return request<ApiResponse>('/logout', { method: 'POST' })
}
