import request from './request'

export const authApi = {
  /**
   * 用户登录
   */
  async login(loginData) {
    console.log('📤 发送登录数据:', loginData)
    
    const requestData = {
      user: loginData.user,
      password: loginData.password
    }
    
    return request({
      url: '/api/auth/login',  // 需要 /api 前缀
      method: 'post',
      data: requestData
    })
  },

  /**
   * 用户注册
   */
  async register(registerData) {
    console.log('📤 发送注册数据:', registerData)
    
    const requestData = {
      username: registerData.username,
      email: registerData.email,
      password: registerData.password
    }
    
    return request({
      url: '/api/auth/register',  // 需要 /api 前缀
      method: 'post',
      data: requestData
    })
  },

  /**
   * 用户登出
   */
  logout() {
    return request({
      url: '/api/auth/logout',  // 需要 /api 前缀
      method: 'post'
    })
  },

  /**
   * 获取登录状态
   */
  getStatus() {
    return request({
      url: '/api/auth/status',  // 需要 /api 前缀
      method: 'get'
    })
  }
}

export default authApi