import { createRouter, createWebHistory } from 'vue-router' import HomeView from '@/views/HomeView.vue' import { useStateStore } from '@/stores/state' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: '/', name: 'Home', component: HomeView, }, { path: '/tickets', name: 'Tickets', component: () => import('../views/TicketsView.vue'), meta: { requiresAuth: true, }, }, { path: '/tickets/:id', name: 'Ticket Details', component: () => import('../views/TicketDetailView.vue'), meta: { requiresAuth: true, }, }, { path: '/login', name: 'Login', component: () => import('../views/LoginView.vue'), }, { path: '/tos', name: 'Terms of Service', component: () => import('../views/TermsOfService.vue'), }, { path: '/privacy', name: 'Privacy', component: () => import('../views/PrivacyPolicy.vue'), }, ], }) router.beforeEach(async (to) => { const stateStore = useStateStore() await stateStore.waitForAuth() const isAuthenticated = stateStore.isAuthenticated if (to.meta.requiresAuth && !isAuthenticated) return { name: 'Login' } }) export default router