import { createRouter, createWebHistory } from 'vue-router';
import { getToken } from "@/utils/auth";

const whiteList = ["/login"];

const routes = [
  {
    path: "/",
    name: "Index",
    component: () => import("@/views/index.vue"),
  },
  {
    path: "/login",
    name: "Login",
    component: () => import("@/views/login.vue"),
  },
  {
    path: "/pwoManage",
    name: "PwoManage",
    component: () => import("@/views/pwoManage/layout.vue"),
    redirect: { name: "PwoManageIndex" },
    children: [
      {
        path: "",
        name: "PwoManageIndex",
        component: () => import("@/views/pwoManage/index.vue"),
      },
      {
        path: "infeed",
        name: "Infeed",
        component: () => import("@/views/pwoManage/infeed/layout.vue"),
        redirect: { name: "PrimaryMaterial" },
        children: [
          {
            path: "primaryMaterial",
            name: "PrimaryMaterial",
            component: () =>
              import("@/views/pwoManage/infeed/primaryMaterial/index.vue"),
          },
          {
            path: "rawMaterial",
            name: "RawMaterial",
            component: () =>
              import("@/views/pwoManage/infeed/rawMaterial/index.vue"),
          },
          {
            path: "fixture",
            name: "Fixture",
            component: () =>
              import("@/views/pwoManage/infeed/fixture/index.vue"),
          },
        ],
      },
      {
        path: "outfeed",
        name: "Outfeed",
        component: () => import("@/views/pwoManage/outfeed/index.vue"),
      },
    ],
  },
];

const router = createRouter({
	history: createWebHistory(),
	routes
});

router.beforeEach(async (to, from, next) => {
	const token = getToken();
	// 已登录，访问 login → 跳首页
	if (token && to.path === "/login") {
		return next("/");
	}

  // 白名单放行
  if (whiteList.includes(to.path)) {
    return next();
  }

  // 未登录，访问受保护路由
  if (!token) {
    return next({
      path: "/login",
      query: { redirect: to.fullPath },
    });
  }

  // 已登录，正常访问
  next();
});

export default router;
