/**
 * 路由配置
 *
 * 使用 unplugin-vue-router 自动生成文件路由
 * 同时添加路由守卫和元信息处理
 */

import { createRouter, createWebHistory } from 'vue-router';
import { routes } from 'vue-router/auto-routes';
import { message } from 'ant-design-vue';

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes,
});

// 路由守卫
router.beforeEach((to, _from, next) => {
  const token = localStorage.getItem('token');
  const userRole = localStorage.getItem('role');

  // 设置页面标题
  if (to.meta.title) {
    document.title = `${to.meta.title} - 少儿智慧阅读`;
  }

  // 需要认证但未登录
  if (to.meta.requiresAuth !== false && !token && to.path !== '/login') {
    message.warning('请先登录');
    next('/login');
    return;
  }

  // 已登录用户访问登录页，跳转到对应首页
  if (to.path === '/login' && token) {
    const defaultRoute = userRole ? `/${userRole}/dashboard` : '/admin/dashboard';
    next(defaultRoute);
    return;
  }

  // 角色权限检查
  if (to.meta.role && userRole !== to.meta.role) {
    message.error('没有权限访问该页面');
    next(`/${userRole}/dashboard`);
    return;
  }

  next();
});

export { router };
export default router;
