import router from './index'
import { useUserStore } from '@/stores/user'

router.beforeEach(async (to, _ , next) => {
  const userStore = useUserStore()

  // 未登录
  if (!userStore.token) {
    // 主页（/）、登录页和下载页允许未登录访问
    if (to.path === '/' || to.path === '/login' || to.path === '/download') {
      next()
    } else {
      next('/login')
    }
    return
  }

  // 已登录还去 login
  if (to.path === '/login') {
    next('/')
    return
  }

  // 如果没有用户信息，尝试获取
  if (!userStore.userInfo) {
    try {
      await userStore.fetchUserInfo()
    } catch (error) {
      // 获取用户信息失败，可能token已过期，跳转到登录页
      console.error('获取用户信息失败:', error)
      userStore.logout()
      next('/login')
      return
    }
  }

  next()
})
