/**
 * Fonctions réutilisables pour afficher une carte de monde dans le chat.
 */
import { SectorMapApp } from './SectorMapApp.js';

const BASE_URL = 'https://travellermap.com';

/**
 * Récupère les données d'un monde via l'API et poste une carte détaillée dans le chat.
 * @param {string} sector  Nom du secteur
 * @param {string} hex     Code hex sur 4 chiffres
 * @param {object} [options]  { whisper: bool }
 */
export async function postWorldCardToChat(sector, hex, options = {}) {
  if (!sector || !hex) {
    ui.notifications.error('Secteur et hex requis');
    return;
  }

  const url = `${BASE_URL}/data/${encodeURIComponent(sector)}/${encodeURIComponent(hex)}`;
  let resp;
  try {
    resp = await fetch(url);
  } catch (err) {
    console.error('worldCard | fetch error:', err);
    ui.notifications.error('Erreur réseau');
    return;
  }
  if (!resp.ok) {
    ui.notifications.error(`Monde introuvable : ${sector} ${hex}`);
    return;
  }

  const data = await resp.json();
  const world = data.Worlds?.[0];
  if (!world) {
    ui.notifications.error(`Aucune donnée pour ${sector} ${hex}`);
    return;
  }

  const html = SectorMapApp._buildWorldCardHTML(world);
  const msgData = { content: html };
  if (options.whisper !== false) msgData.whisper = [game.user.id];

  await ChatMessage.create(msgData);
}
