import { createRouter, createWebHashHistory } from 'vue-router'
import { useAuthStore } from '@/stores/auth'

const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    {
      path: '/login',
      name: 'login',
      component: () => import('@/views/LoginView.vue'),
      meta: {
        requiresAuth: false,
        title: '系统登录'
      }
    },
    {
      path: '/dashboard',
      name: 'dashboard',
      component: () => import('@/views/DashboardView.vue'),
      meta: {
        requiresAuth: true,
        title: '工业模型软件管理统一平台'
      }
    },
    // 重定向根路径到仪表板
    {
      path: '/',
      redirect: '/dashboard'
    }
  ],
})

// 路由守卫
router.beforeEach((to, from, next) => {
  const authStore = useAuthStore()

  // 设置页面标题
  if (to.meta.title) {
    document.title = to.meta.title
  }

  // 检查是否需要认证
  if (to.meta.requiresAuth) {
    if (authStore.isAuthenticated) {
      // 已登录，允许访问
      next()
    } else {
      // 未登录，重定向到登录页面
      next({
        name: 'login',
        query: { redirect: to.fullPath }
      })
    }
  } else {
    // 不需要认证的页面
    if (to.name === 'login' && authStore.isAuthenticated) {
      // 已登录用户访问登录页，重定向到仪表板
      next({ name: 'dashboard' })
    } else {
      next()
    }
  }
})

export default router
