// 模拟后端动态生成路由
import { defineFakeRoute } from "vite-plugin-fake-server/client";
import { system, monitor } from "@/router/enums";

/**
 * roles：页面级别权限，这里模拟二种 "admin"、"common"
 * admin：管理员角色
 * common：普通角色
 */
const testRouter = [
  {
    id: "906c8094-21a1-1042-f151-3a14dab3cadb",
    parentId: "00000000-0000-0000-0000-000000000000",
    path: "/monitor",
    name: null,
    meta: {
      icon: "menus.pureSysMonitor",
      title: "系统监控",
      component: null,
      roles: null,
      auths: [null],
      frameSrc: null,
      frameLoading: null,
      keepAlive: null,
      showLink: true
    },
    children: [
      {
        id: "c765691a-32e4-4e88-6e8a-3a14dab3cadb",
        parentId: "906c8094-21a1-1042-f151-3a14dab3cadb",
        path: "/monitor/online-user",
        name: "OnlineUser",
        meta: {
          icon: "ri:user-voice-line",
          title: "在线用户",
          component: null,
          roles: null,
          auths: ["monitor:online:list"],
          frameSrc: null,
          frameLoading: null,
          keepAlive: null,
          showLink: true
        }
      },
      {
        path: "/monitor/operation-logs",
        name: "OperationLog",
        meta: {
          icon: "ri:history-fill",
          title: "操作日志",
          component: "monitor/logs/operation/index",
          showLink: true
        }
      },
      {
        id: "580a7b97-15ab-6d43-d011-3a14dab3cadc",
        parentId: "906c8094-21a1-1042-f151-3a14dab3cadb",
        path: "/monitor/login-logs",
        name: "LoginLog",
        meta: {
          icon: "ri:window-line",
          title: "登录日志",
          component: "monitor/logs/login/index",
          roles: null,
          auths: ["monitor:logininfor:list"],
          frameSrc: null,
          frameLoading: null,
          keepAlive: null,
          showLink: true
        },
        children: null
      }
    ]
  }
];

const systemManagementRouter = {
  path: "/system",
  meta: {
    icon: "ri:settings-3-line",
    title: "menus.pureSysManagement",
    rank: system
  },
  children: [
    {
      path: "/system/user/index",
      name: "SystemUser",
      meta: {
        icon: "ri:admin-line",
        title: "menus.pureUser"
        //roles: ["admin"]
      }
    },
    {
      path: "/system/role/index",
      name: "SystemRole",
      meta: {
        icon: "ri:admin-fill",
        title: "menus.pureRole"
        //roles: ["admin"]
      }
    },
    {
      path: "/system/menu/index",
      name: "SystemMenu",
      meta: {
        icon: "ep:menu",
        title: "menus.pureSystemMenu"
        //roles: ["admin"]
      }
    },
    {
      path: "/system/dept/index",
      name: "SystemDept",
      meta: {
        icon: "ri:git-branch-line",
        title: "menus.pureDept"
        //roles: ["admin"]
      }
    },
    {
      path: "/system/post/index",
      name: "SystemPost",
      meta: {
        icon: "ant-design:deployment-unit-outlined",
        title: "menus.purePost"
        //roles: ["admin"]
      }
    }
  ]
};

const systemMonitorRouter = {
  path: "/monitor",
  meta: {
    icon: "ep:monitor",
    title: "menus.pureSysMonitor",
    rank: monitor
  },
  children: [
    {
      path: "/monitor/online-user",
      component: "monitor/online/index",
      name: "OnlineUser",
      meta: {
        icon: "ri:user-voice-line",
        title: "menus.pureOnlineUser"
        //roles: ["admin"]
      }
    },
    {
      path: "/monitor/login-logs",
      component: "monitor/logs/login/index",
      name: "LoginLog",
      meta: {
        icon: "ri:window-line",
        title: "menus.pureLoginLog"
        //roles: ["admin"]
      }
    },
    {
      path: "/monitor/operation-logs",
      component: "monitor/logs/operation/index",
      name: "OperationLog",
      meta: {
        icon: "ri:history-fill",
        title: "menus.pureOperationLog"
        //roles: ["admin"]
      }
    }
    // {
    //   path: "/monitor/system-logs",
    //   component: "monitor/logs/system/index",
    //   name: "SystemLog",
    //   meta: {
    //     icon: "ri:file-search-line",
    //     title: "menus.pureSystemLog",
    //     //roles: ["admin"]
    //   }
    // }
  ]
};
//
// const permissionRouter = {
//   path: "/permission",
//   meta: {
//     title: "menus.purePermission",
//     icon: "ep:lollipop",
//     rank: permission
//   },
//   children: [
//     {
//       path: "/permission/page/index",
//       name: "PermissionPage",
//       meta: {
//         title: "menus.purePermissionPage"
//         //roles: ["admin", "common"]
//       }
//     },
//     {
//       path: "/permission/button",
//       meta: {
//         title: "menus.purePermissionButton"
//         //roles: ["admin", "common"]
//       },
//       children: [
//         {
//           path: "/permission/button/router",
//           component: "permission/button/index",
//           name: "PermissionButtonRouter",
//           meta: {
//             title: "menus.purePermissionButtonRouter",
//             auths: [
//               "permission:btn:add",
//               "permission:btn:edit",
//               "permission:btn:delete"
//             ]
//           }
//         },
//         {
//           path: "/permission/button/login",
//           component: "permission/button/perms",
//           name: "PermissionButtonLogin",
//           meta: {
//             title: "menus.purePermissionButtonLogin"
//           }
//         }
//       ]
//     }
//   ]
// };
//
// const frameRouter = {
//   path: "/iframe",
//   meta: {
//     icon: "ri:links-fill",
//     title: "menus.pureExternalPage",
//     rank: frame
//   },
//   children: [
//     {
//       path: "/iframe/embedded",
//       meta: {
//         title: "menus.pureEmbeddedDoc"
//       },
//       children: [
//         {
//           path: "/iframe/colorhunt",
//           name: "FrameColorHunt",
//           meta: {
//             title: "menus.pureColorHuntDoc",
//             frameSrc: "https://colorhunt.co/",
//             keepAlive: true
//             //roles: ["admin", "common"]
//           }
//         },
//         {
//           path: "/iframe/uigradients",
//           name: "FrameUiGradients",
//           meta: {
//             title: "menus.pureUiGradients",
//             frameSrc: "https://uigradients.com/",
//             keepAlive: true
//             //roles: ["admin", "common"]
//           }
//         },
//         {
//           path: "/iframe/ep",
//           name: "FrameEp",
//           meta: {
//             title: "menus.pureEpDoc",
//             frameSrc: "https://element-plus.org/zh-CN/",
//             keepAlive: true
//             //roles: ["admin", "common"]
//           }
//         },
//         {
//           path: "/iframe/tailwindcss",
//           name: "FrameTailwindcss",
//           meta: {
//             title: "menus.pureTailwindcssDoc",
//             frameSrc: "https://tailwindcss.com/docs/installation",
//             keepAlive: true
//             //roles: ["admin", "common"]
//           }
//         },
//         {
//           path: "/iframe/vue3",
//           name: "FrameVue",
//           meta: {
//             title: "menus.pureVueDoc",
//             frameSrc: "https://cn.vuejs.org/",
//             keepAlive: true
//             //roles: ["admin", "common"]
//           }
//         },
//         {
//           path: "/iframe/vite",
//           name: "FrameVite",
//           meta: {
//             title: "menus.pureViteDoc",
//             frameSrc: "https://cn.vitejs.dev/",
//             keepAlive: true
//             //roles: ["admin", "common"]
//           }
//         },
//         {
//           path: "/iframe/pinia",
//           name: "FramePinia",
//           meta: {
//             title: "menus.purePiniaDoc",
//             frameSrc: "https://pinia.vuejs.org/zh/index.html",
//             keepAlive: true
//             //roles: ["admin", "common"]
//           }
//         },
//         {
//           path: "/iframe/vue-router",
//           name: "FrameRouter",
//           meta: {
//             title: "menus.pureRouterDoc",
//             frameSrc: "https://router.vuejs.org/zh/",
//             keepAlive: true
//             //roles: ["admin", "common"]
//           }
//         }
//       ]
//     },
//     {
//       path: "/iframe/external",
//       meta: {
//         title: "menus.pureExternalDoc"
//       },
//       children: [
//         {
//           path: "/external",
//           name: "https://pure-admin.github.io/pure-admin-doc",
//           meta: {
//             title: "menus.pureExternalLink"
//             //roles: ["admin", "common"]
//           }
//         },
//         {
//           path: "/pureUtilsLink",
//           name: "https://pure-admin-utils.netlify.app/",
//           meta: {
//             title: "menus.pureUtilsLink"
//             //roles: ["admin", "common"]
//           }
//         }
//       ]
//     }
//   ]
// };
//
// const tabsRouter = {
//   path: "/tabs",
//   meta: {
//     icon: "ri:bookmark-2-line",
//     title: "menus.pureTabs",
//     rank: tabs
//   },
//   children: [
//     {
//       path: "/tabs/index",
//       name: "Tabs",
//       meta: {
//         title: "menus.pureTabs"
//         //roles: ["admin", "common"]
//       }
//     },
//     // query 传参模式
//     {
//       path: "/tabs/query-detail",
//       name: "TabQueryDetail",
//       meta: {
//         // 不在menu菜单中显示
//         showLink: false,
//         activePath: "/tabs/index"
//         //roles: ["admin", "common"]
//       }
//     },
//     // params 传参模式
//     {
//       path: "/tabs/params-detail/:id",
//       component: "params-detail",
//       name: "TabParamsDetail",
//       meta: {
//         // 不在menu菜单中显示
//         showLink: false,
//         activePath: "/tabs/index"
//         //roles: ["admin", "common"]
//       }
//     }
//   ]
// };

export default defineFakeRoute([
  {
    url: `/dev-api/get-async-routes`,
    method: "get",
    response: () => {
      return testRouter;
      return [
        systemManagementRouter,
        systemMonitorRouter
        //permissionRouter,
        // frameRouter,
        // tabsRouter
      ];
    }
  }
]);
