// public/service-worker.js
self.addEventListener('install', () => self.skipWaiting());

self.addEventListener('activate', async () => {
  // Unregister old CRA SW
  const regs = await self.registration.scope ? [self.registration] : await self.clients.getRegistrations();
  for (const reg of regs) {
    if (reg && reg.scriptURL.endsWith('service-worker.js')) {
      await reg.unregister();
    }
  }

  // Clear all caches
  if ('caches' in self) {
    const keys = await caches.keys();
    for (const key of keys) {
      await caches.delete(key);
    }
  }

  // Reload all clients
  const clients = await self.clients.matchAll({ type: 'window' });
  clients.forEach(client => client.navigate(client.url));
});
