import { shouldServeAds } from '@/lib/ads'
import { MonetagScript } from './MonetagScript'

/**
 * Script de anuncios de Monetag (MultiTag: popunder + push + in-page push + vignette).
 *
 * TRES interruptores:
 *
 * 1. `MONETAG_SRC` y `MONETAG_ZONE` en el .env. Si falta cualquiera de los dos no se
 *    carga nada: ese es el interruptor de encendido/apagado. Los dos valores salen
 *    del panel de Monetag (Sites → tu canal → Get Tag) y son propios de cada zona,
 *    por eso el `src` también es variable y no está fijado en el código.
 *    Sin prefijo NEXT_PUBLIC_: se leen en el servidor y se pasan como props, así que
 *    activar o desactivar es tocar el .env + reinicio, SIN rebuild.
 * 2. El filtro común de publicidad (`shouldServeAds`, ver lib/ads.ts): fuera para
 *    admins y para quien sea rango 2+ o haya pagado alguna vez.
 * 3. El consentimiento «Marketing» del visitante, en <MonetagScript/> (cliente).
 *
 * OJO con el push de MultiTag: además de esto necesita un `sw.js` servido desde la
 * RAÍZ del dominio (https://www.nightspire.gg/sw.js). Se descarga del panel de
 * Monetag y se deja en `public/sw.js`, que Next sirve tal cual en la raíz. Sin ese
 * fichero el resto de formatos funcionan, pero las notificaciones push no.
 */
export async function Monetag() {
  const src = process.env.MONETAG_SRC
  const zone = process.env.MONETAG_ZONE
  if (!src || !zone) return null

  if (!(await shouldServeAds())) return null

  return <MonetagScript src={src} zone={zone} />
}
