/**
 * Construit l'URL sécurisée pour accéder à un fichier media via le proxy Next.js.
 * Le proxy `/api/download` injecte le JWT côté serveur avant de transmettre au backend Django.
 *
 * Gère les chemins relatifs ("/data/some/file.pdf") et les URLs absolues du backend
 * ("http://backend:8000/data/some/file.pdf").
 *
 * @param {string} filePath - Chemin ou URL complète du fichier
 * @returns {string|null} URL vers /api/download?path=... ou null si pas de chemin
 */
export const getSecureFileUrl = (filePath) => {
  if (!filePath) return null;
  if (typeof filePath !== 'string') return null;

  // URL deja proxifiee: la reutiliser telle quelle.
  if (filePath.startsWith('/api/download?')) {
    return filePath;
  }

  // Si c'est une URL absolue, extraire le chemin /data/...
  if (filePath.startsWith('http://') || filePath.startsWith('https://')) {
    try {
      const url = new URL(filePath);
      filePath = url.pathname;
    } catch {
      return null;
    }
  }

  // Décoder le chemin au cas où il est déjà URL-encodé (ex: %20 pour les espaces)
  // puis ré-encoder proprement pour éviter le double encodage (%2520).
  try {
    filePath = decodeURIComponent(filePath);
  } catch {
    // Si le décodage échoue, le chemin n'était pas encodé : on le garde tel quel.
  }

  return `/api/download?path=${encodeURIComponent(filePath)}`;
};
