/**
 * API 服务配置
 */
import axios from 'axios'

const api = axios.create({
  baseURL: import.meta.env.VITE_API_BASE_URL || 'http://localhost:8000/api/v1',
  timeout: 120000, // 2分钟超时（LLM 调用可能需要较长时间）
  headers: {
    'Content-Type': 'application/json',
  },
  // 自动跟随重定向
  maxRedirects: 5,
})

// 请求拦截器 - 自动添加末尾斜杠
api.interceptors.request.use(
  (config) => {
    // 确保 URL 路径有末尾斜杠（如果路径不以 / 结尾）
    if (config.url && !config.url.includes('?') && !config.url.endsWith('/')) {
      // 只为没有参数的路径添加末尾斜杠
      const urlParts = config.url.split('/')
      if (urlParts.length > 0 && !urlParts[urlParts.length - 1].includes('.')) {
        config.url = config.url + '/'
      }
    }
    return config
  },
  (error) => {
    return Promise.reject(error)
  }
)

// 响应拦截器
api.interceptors.response.use(
  (response) => response.data,
  (error) => {
    const message = error.response?.data?.detail || error.message || '请求失败'
    console.error('API Error:', message, error)
    console.error('API Error URL:', error.config?.url)
    console.error('API Error Status:', error.response?.status)
    return Promise.reject(new Error(message))
  }
)

export default api
