import axios from 'axios'
import { ElMessage } from 'element-plus'

// 创建专属实例，baseURL 指向刚才配置的代理前缀
const wechatHttp = axios.create({
  baseURL: '/wechat-api',
  timeout: 15000,
})

// 请求拦截器 (按需配置)
wechatHttp.interceptors.request.use(config => {
  // 微信接口如果需要特定的 token，可以在这里统一携带
  // 例如：config.headers['X-Token'] = '...'
  return config
})

// 响应拦截器
wechatHttp.interceptors.response.use(
  res => {
    // 假设 Apifox 显示返回直接是数据数组，不包装在 data 字段内，
    // 则 axios 会自动将其放在 res.data 下。
    // 如果实际外层还有 code, msg 字段，请在这里根据实际情况判断拦截。
    return res.data
  },
  err => {
    if (!err.config?._silent) {
      const msg = err.response?.data?.message || err.message || '微信接口请求失败'
      ElMessage.error(msg)
    }
    return Promise.reject(err)
  }
)

// 导出具体的接口调用方法
export const wechatApi = {
  // 获取首页 banner 图
  getBanners: () => wechatHttp.get('/api/public/banners'),
  // 获取文章分类
  getArticlesCategories: () => wechatHttp.get('/api/articles/categories'),
  // 获取文章列表
  getArticlesList: (params) => wechatHttp.get('/api/articles', { params }),
  // 获取文章详情
  getArticleDetail: (id) => wechatHttp.get(`/api/articles/${id}`),
  // 获取相关推荐文章
  getRelatedArticles: (id) => wechatHttp.get(`/api/articles/${id}/related`),
}

export default wechatApi
