import "server-only";

export type AdsensePlacement =
  | "articleFooter"
  | "contentFeed"
  | "domainCheck"
  | "guide"
  | "guideBanner"
  | "inArticle"
  | "sidebar";

const defaultSlots: Record<AdsensePlacement, string> = {
  articleFooter: "2831546969",
  contentFeed: "7799296015",
  domainCheck: "5916875308",
  guide: "6402453860",
  guideBanner: "7156884917",
  inArticle: "7546260557",
  sidebar: "8469966581",
};

export function getAdsenseSlot(placement: AdsensePlacement) {
  const slots: Record<AdsensePlacement, string | undefined> = {
    articleFooter: process.env.GOOGLE_ADSENSE_ARTICLE_FOOTER_SLOT,
    contentFeed: process.env.GOOGLE_ADSENSE_CONTENT_FEED_SLOT,
    domainCheck: process.env.GOOGLE_ADSENSE_DOMAIN_CHECK_SLOT,
    guide: process.env.GOOGLE_ADSENSE_GUIDE_SLOT,
    guideBanner: process.env.GOOGLE_ADSENSE_GUIDE_BANNER_SLOT,
    inArticle: process.env.GOOGLE_ADSENSE_IN_ARTICLE_SLOT,
    sidebar: process.env.GOOGLE_ADSENSE_SIDEBAR_SLOT,
  };
  const slot = slots[placement]?.trim() || defaultSlots[placement];

  return /^\d+$/.test(slot) ? slot : null;
}
