// src/utils/request.ts
import axios, { AxiosInstance, InternalAxiosRequestConfig } from 'axios';

// 从环境变量读取基础 URL
const BASE_URL = import.meta.env.VITE_API_BASIC
console.log('API Basic URL:',import.meta.env.VITE_API_BASIC);
console.log('All env:', import.meta.env);
// 创建 axios 实例
const request: AxiosInstance = axios.create({
  baseURL: BASE_URL,
  timeout: 10000, // 10 秒超时
  headers: {
    'Content-Type': 'application/json',
  },
});

// 请求拦截器（可选：加 token、loading 等）
request.interceptors.request.use(
  (config: InternalAxiosRequestConfig) => {
    // 例如：从 localStorage 获取 token
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器（统一处理错误、code 等）
request.interceptors.response.use(
  (response) => {

    // 假设后端返回格式为 { code: 200, data: ..., message: '' }
    const { code, data, message } = response.data;
    if (code === 1) {
      return data;
    } else {
      // 可抛出业务错误
      return Promise.reject(new Error(message || '请求失败'));
    }
  },
  (error) => {
    // 网络错误 or 超时等

    return Promise.reject(error.response.data);
  }
);

export default request;