import { createRouter, createWebHistory } from "vue-router";

import BasicLayout from "@/layouts/BasicLayout.vue";
import { resetDescription, setTitle } from "@/utils";
import ChatLLM from "@/views/ChatLLMView.vue";
import VoiceView from "@/views/VoiceView.vue";

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: "/",
      component: BasicLayout,
      children: [
        {
          path: "",
          name: "ChatLLM",
          component: ChatLLM,
          meta: {
            title: "对话"
          }
        },
        {
          path: "/voice",
          name: "Voice",
          component: VoiceView,
          meta: {
            title: "语音对话"
          }
        }
      ]
    }
  ]
});

// // 权限检查函数，检查并决定是否允许访问
// const checkPermission: NavigationGuard = (to, from, next) => {
//   if (to.query.accessToken) return next(); // 如果有accessToken参数，则直接放行

//   const userStore = useUserStore();
//   const token =
//     useUserStore().accessToken ||
//     localStorage.getItem("accessToken") ||
//     undefined;

//   if (token) {
//     // 如果token无效，重定向到登录页，并提示信息
//     userStore.getUserInfo("router_get").then((hasPermission) => {
//       if (hasPermission) {
//         next(); // 如果有权限，继续导航
//       } else {
//         if (!to.meta.auth) {
//           next();
//         } else {
//           // 如果token无效，重定向到登录页，并提示信息
//           context.message?.info(
//             "登录信息已过期，请重新登录",
//             GotoLoginMessageOption
//           );
//         }
//       }
//     });
//   } else {
//     if (!to.meta.auth) {
//       next();
//     } else {
//       // 如果没有token，重定向到登录页，并提示信息
//       context.message?.info("请先登录", GotoLoginMessageOption);
//     }
//   }
// };

// // 添加导航守卫

router.beforeEach((to, from, next) => {
  setTitle(to.meta.title as string);
  resetDescription();

  // context.loadingBar?.start();
  // 在每个路由导航前执行权限检查
  // checkPermission(to, from, next);
  next();
});

// router.afterEach(() => {
//   context.loadingBar?.finish();
// });

export default router;
