/**
 * Firebase service worker registration (client-only).
 * Ensures firebase-messaging-sw.js is registered for push notifications.
 */
export default defineNuxtPlugin(() => {
  if ('serviceWorker' in navigator) {
    window.addEventListener('load', async () => {
      try {
        const registrations = await navigator.serviceWorker.getRegistrations()
        const firebaseSwRegistered = registrations.some(
          (reg) =>
            reg.active &&
            reg.active.scriptURL.includes('firebase-messaging-sw.js'),
        )

        if (!firebaseSwRegistered) {
          await navigator.serviceWorker.register(
            '/firebase-messaging-sw.js',
            { scope: '/firebase-cloud-messaging-push-scope' },
          )
        }
      } catch (error) {
        console.error('Error registering Firebase service worker:', error)
      }
    })
  }
})
