import axios from 'axios'
import { useAuthStore } from '../store/auth'

// 创建axios实例
const request = axios.create({
  baseURL: 'https://wx-xcx-check.blv-oa.com:4433/api', // API根地址 - 使用vite代理
  timeout: 10000, // 请求超时时间
  headers: {
    'Content-Type': 'application/json' // 设置默认请求格式为JSON
  }
})

// 请求拦截器
request.interceptors.request.use(
  config => {
    // 从auth store获取token（如果有）
    const authStore = useAuthStore()
    if (authStore.isLoggedIn) {
      // 虽然当前是前端验证，但预留token位置以便后续扩展
      // config.headers.Authorization = `Bearer ${authStore.token}`
    }
    return config
  },
  error => {
    // 请求错误处理
    console.error('request error:', error)
    return Promise.reject(error)
  }
)

// 响应拦截器
request.interceptors.response.use(
  response => {
    // 直接返回响应数据
    return response.data
  },
  error => {
    // 响应错误处理
    console.error('response error:', error)
    
    // 如果是401未授权，可以在这里处理登出逻辑
    if (error.response && error.response.status === 401) {
      const authStore = useAuthStore()
      authStore.logout()
      // 跳转到登录页
      window.location.href = '/login'
    }
    
    // 格式化错误信息
    const errorMessage = error.response?.data?.message || error.message || '请求失败'
    return Promise.reject(new Error(errorMessage))
  }
)

export default request
