// Configuration des médias pour les différents cas d'usage
// Cette configuration est maintenant chargée dynamiquement depuis app_config.yaml
// via l'API /api/config

// Configuration par défaut (fallback si l'API échoue)
const defaultMediaConfig = {
  // Proposition Simple
  proposalSimple: {
    gifUrl: "https://media.giphy.com/media/g9582DNuQppxC/giphy.gif",
    videoUrl: null,
    audioUrl: null
  },
  
  // Proposition MultiBC
  proposalMultiBC: {
    gifUrl: "https://media.giphy.com/media/3oz8xAFtqoOUUrsh7W/giphy.gif",
    videoUrl: null,
    audioUrl: null
  },
  
  // Contractualisation (Convention d'Étude / Bon de Commande)
  contractualisation: {
    gifUrl: "https://media.giphy.com/media/l0MYt5jPR6QX5pnqM/giphy.gif",
    videoUrl: null,
    audioUrl: null
  },
  
  // Extraction Dictionnaire
  dictionaryExtraction: {
    gifUrl: null,
    videoUrl: null,
    audioUrl: null
  }
};

// Fonction pour convertir les clés snake_case en camelCase
function snakeToCamel(obj) {
  if (obj === null || typeof obj !== 'object') return obj;
  
  if (Array.isArray(obj)) {
    return obj.map(snakeToCamel);
  }
  
  return Object.keys(obj).reduce((acc, key) => {
    const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
    acc[camelKey] = snakeToCamel(obj[key]);
    return acc;
  }, {});
}

// Charger la configuration depuis l'API
async function loadMediaConfig() {
  try {
    const response = await fetch('/api/config');
    if (!response.ok) {
      throw new Error('Failed to load config');
    }
    const config = await response.json();
    
    // Convertir les clés snake_case du YAML en camelCase pour JS
    const mediaConfig = snakeToCamel(config.media);
    
    window.MediaConfig = mediaConfig;
    window.UIConfig = snakeToCamel(config.ui);
    
    console.log('Configuration loaded from API:', { media: mediaConfig, ui: window.UIConfig });
  } catch (error) {
    console.warn('Failed to load config from API, using defaults:', error);
    window.MediaConfig = defaultMediaConfig;
    window.UIConfig = null;
  }
}

// Charger la configuration au démarrage
loadMediaConfig();

// Export pour utilisation dans app.jsx (compatibilité)
if (typeof window !== 'undefined') {
  window.MediaConfig = window.MediaConfig || defaultMediaConfig;
}

