import { useAuthStore } from '~/stores/auth'

export default defineNuxtRouteMiddleware(async (to, from) => {
  if (process.server) return

  const authStore = useAuthStore()

  if (!authStore.initialized) {
    await authStore.initializeAuth()
  }

  if (authStore.subscriptionStatus?.isAdmin) {
    return
  }

  if (authStore.isAuthenticated && !authStore.subscriptionStatus) {
    await authStore.loadSubscriptionStatus()
  }

  if (authStore.subscriptionStatus?.isAdmin) {
    return
  }

  if (!authStore.hasActiveSubscription) {
    return navigateTo('/payment')
  }
})
