/**
 * Text Override: "Reservar" → "Comprar" & "Mis reservas" → "Mis compras"
 * Supports ES, EN, FR
 */
(function () {
  'use strict';

  const translations = {
    // Button: "Reservar" / "Book now" / "Réserver maintenant" → "Comprar" equivalents
    button: {
      'reservar': 'Comprar',
      'book now': 'Buy now',
      'réserver maintenant': 'Acheter',
    },
    // Link: "Mis reservas" / "My bookings" / "Mes réservations" → "Mis compras" equivalents
    link: {
      'mis reservas': 'Mis compras',
      'my bookings': 'My purchases',
      'my reservations': 'My purchases',
      'mes réservations': 'Mes achats',
    }
  };

  function normalizeText(text) {
    return (text || '').trim().toLowerCase();
  }

  function replaceButtonText() {
    document.querySelectorAll('button.service-item__add-to-cart').forEach(function (btn) {
      var key = normalizeText(btn.textContent);
      if (translations.button[key]) {
        btn.textContent = translations.button[key];
      }
    });
  }

  function replaceLinkText() {
    document.querySelectorAll('a[href="/buyer/purchases"]').forEach(function (link) {
      var key = normalizeText(link.textContent);
      if (translations.link[key]) {
        link.textContent = translations.link[key];
      }
    });
  }

  function applyOverrides() {
    replaceButtonText();
    replaceLinkText();
  }

  // Run on DOMContentLoaded
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', applyOverrides);
  } else {
    applyOverrides();
  }

  // MutationObserver to catch dynamically rendered content (Alpine.js, etc.)
  var observer = new MutationObserver(function () {
    applyOverrides();
  });

  observer.observe(document.body || document.documentElement, {
    childList: true,
    subtree: true
  });

  // Safety: disconnect observer after 30s to avoid unnecessary overhead
  setTimeout(function () {
    observer.disconnect();
  }, 30000);
})();