import qs from "qs"; // Importation de qs pour construire des requêtes de chaîne de requête

// Fonction pour récupérer une compétence spécifique
export async function fetchDataCompetences(collection: string, slug: string) {
  // Construction de la requête avec des filtres et des relations à peupler
  const query = qs.stringify({
    filters: {
      slug: { $eq: slug },
    },
    populate: "picture", // On garde les images des compétences
  });

  // Log de la requête API pour le débogage
  console.log(`🛠️ Requête API Compétence : http://localhost:1337/api/${collection}?${query}`);

  try {
    // Envoi de la requête à l'API Strapi
    const response = await fetch(`http://localhost:1337/api/${collection}?${query}`, {
      cache: "no-store",
    });

    // Vérification de la réponse de l'API
    if (!response.ok) {
      throw new Error(`Failed to fetch competences data: ${response.status}`);
    }

    // Récupération des données de la réponse
    const data = await response.json();
    console.log("✅ Données reçues (Compétence) :", data);

    // Retourne la première compétence ou null si aucune donnée n'est trouvée
    return data.data[0] || null;
  } catch (error) {
    // Gestion des erreurs et log des erreurs
    console.error("❌ Erreur lors de la récupération des compétences :", error);
    return null;
  }
}

// Fonction pour récupérer les données du glossaire
export async function fetchDataGlossaire() {
  try {
    // Log de la requête API pour le débogage
    console.log("🛠️ Requête API Glossaire : http://localhost:1337/api/glossaires?populate=images");

    // Envoi de la requête à l'API Strapi
    const response = await fetch("http://localhost:1337/api/glossaires?populate=images", {
      cache: "no-store",
    });

    // Vérification de la réponse de l'API
    if (!response.ok) {
      throw new Error(`Failed to fetch glossaire data: ${response.status}`);
    }

    // Récupération des données de la réponse
    const data = await response.json();
    console.log("✅ Données reçues (Glossaire) :", data);

    // Retourne les données du glossaire ou un tableau vide si aucune donnée n'est trouvée
    return data.data || [];
  } catch (error) {
    // Gestion des erreurs et log des erreurs
    console.error("❌ Erreur lors de la récupération du glossaire :", error);
    return [];
  }
}