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

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

// 请求拦截器 - 仅对列表类请求添加末尾斜杠
api.interceptors.request.use(
  (config) => {
    // 不自动添加末尾斜杠，FastAPI 后端不需要
    // 只在某些特定端点需要时手动添加
    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
