type AnalyticsEventParams = Record<string, string | number | boolean>

declare global {
  interface Window {
    gtag?: (command: 'event', eventName: string, params?: AnalyticsEventParams) => void
  }
}

/**
 * Wysyła wyłącznie zdarzenia produktowe bez danych osobowych do już osadzonego Google Analytics.
 * Brak załadowanego tagu nie wpływa na działanie strony.
 */
export function trackAnalyticsEvent(eventName: string, params?: AnalyticsEventParams) {
  if (typeof window === 'undefined' || typeof window.gtag !== 'function') return

  window.gtag('event', eventName, params)
}
