// 保存原始的fetch函数
const originalFetch = window.fetch

// 包装fetch函数，添加401/403错误处理
window.fetch = async function(...args: Parameters<typeof fetch>): Promise<Response> {
  const response = await originalFetch(...args)
  
  // 检查响应状态码（仅在401/403时处理）
  if (response.status === 401 || response.status === 403) {
    // 延迟导入，确保pinia已初始化
    try {
      const { useAuthStore } = await import('../stores/auth')
      const { default: router } = await import('../../app/router')
      const authStore = useAuthStore()
      
      // 如果用户已登录，执行登出操作
      if (authStore.isLoggedIn) {
        console.warn('检测到401/403错误，Cookie已过期，自动退出登录')
        await authStore.logout()
        
        // 跳转到登录页（避免重复跳转）
        if (router.currentRoute.value.path !== '/login') {
          router.push('/login')
        }
      }
    } catch (error) {
      // 如果store还未初始化，忽略错误（应用启动阶段）
      // 这不会影响正常的API调用
    }
  }
  
  return response
}

// 导出原始fetch（如果需要的话）
export { originalFetch as originalFetch }

