import { createRouter, createWebHistory } from 'vue-router' const router = createRouter({ history: createWebHistory(), routes: [ { path: '/', name: 'home', component: () => import('@/views/public/HomeView.vue') }, { path: '/login', name: 'login', component: () => import('@/views/account/LoginView.vue') }, { path: '/listings', name: 'listings', component: () => import('@/views/public/ListingsView.vue') }, { path: '/listings/:id', name: 'listing-detail', component: () => import('@/views/public/ListingDetailView.vue') }, { path: '/orders/create', name: 'order-create', component: () => import('@/views/account/OrderCreateView.vue') }, { path: '/orders', name: 'orders', component: () => import('@/views/account/OrdersView.vue') }, { path: '/orders/:id', name: 'order-detail', component: () => import('@/views/account/OrderDetailView.vue') }, { path: '/wallet', name: 'wallet', component: () => import('@/views/account/WalletView.vue') }, { path: '/notifications', name: 'notifications', component: () => import('@/views/account/NotificationsView.vue') }, { path: '/realname', name: 'realname', component: () => import('@/views/account/RealnameView.vue') }, { path: '/seller/listings', name: 'seller-listings', component: () => import('@/views/seller/SellerListingsView.vue') }, { path: '/seller/listings/create', name: 'seller-listing-create', component: () => import('@/views/seller/SellerListingCreateView.vue') }, { path: '/seller/handoffs', name: 'seller-handoffs', component: () => import('@/views/seller/SellerHandoffsView.vue') }, { path: '/seller/earnings', name: 'seller-earnings', component: () => import('@/views/seller/SellerEarningsView.vue') }, { path: '/admin/login', name: 'admin-login', component: () => import('@/views/admin/AdminLoginView.vue') }, { path: '/admin/dashboard', name: 'admin-dashboard', component: () => import('@/views/admin/AdminDashboardView.vue') }, { path: '/admin/listings/review', name: 'admin-listing-review', component: () => import('@/views/admin/AdminListingReviewView.vue') }, { path: '/admin/disputes', name: 'admin-disputes', component: () => import('@/views/admin/AdminDisputesView.vue') }, { path: '/admin/system-configs', name: 'admin-system-configs', component: () => import('@/views/admin/AdminSystemConfigsView.vue') }, ], }) router.beforeEach((to) => { if (to.path.startsWith('/admin') && to.path !== '/admin/login') { const token = localStorage.getItem('admin_access_token') if (!token) { return '/admin/login' } } return true }) export default router