# OMAG est servi via cPanel (nginx proxy -> Apache). Apache lit ce .htaccess.
# Routage SPA + headers de cache (anti "vieille version jusqu'au Ctrl+Shift+R").

# Type MIME des modules ES (.mjs) — sinon le navigateur refuse d'importer le module
# (ex. worker pdf.js buildé en .mjs) : "Failed to fetch dynamically imported module".
# Apache ne connait pas .mjs par defaut, contrairement au serveur de dev Vite.
<IfModule mod_mime.c>
  AddType text/javascript .mjs .js
</IfModule>

# Routage SPA — fallback vers index.html pour les routes côté client (Vue Router)
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

# Gestion du cache : les "points d'entrée" jamais cachés, les assets versionnés cachés a vie.
<IfModule mod_headers.c>
  # Assets buildés avec un hash dans le nom (/assets/index-XXXX.js) -> cache permanent sans risque
  <If "%{REQUEST_URI} =~ m#^/assets/#">
    Header set Cache-Control "public, max-age=31536000, immutable"
  </If>

  # Points d'entrée -> toujours revalidés -> la nouvelle version est vue immédiatement.
  # sw.js reste no-cache : indispensable pour que le SW auto-destructeur (selfDestroying)
  # atteigne rapidement les clients qui avaient encore l'ancien Service Worker.
  # version.json no-cache : lu par useVersionGate pour détecter un nouveau build.
  <FilesMatch "^(index\.html|sw\.js|registerSW\.js|manifest\.webmanifest|version\.json)$">
    Header set Cache-Control "no-cache, must-revalidate"
  </FilesMatch>
</IfModule>
