import { PlatformAdapter } from './base.js';
export class MolocoAdapter extends PlatformAdapter {
    getName() {
        return 'Moloco';
    }
    getSizeLimit() {
        // Moloco: 5MB
        return 5 * 1024 * 1024;
    }
    getDefaultFormat() {
        return 'html';
    }
    async modifyHTML(html, assets) {
        // Moloco 使用 FbPlayableAd API（与 Facebook 相同）
        const molocoScriptCode = `
      window.FbPlayableAd = window.FbPlayableAd || {
        onCTAClick: function() {
          console.log('Moloco CTA clicked');
          function getOS(){
            var ua = navigator.userAgent || '';
            if (/iPad|iPhone|iPod/.test(ua) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) return 'ios';
            if (/Android/i.test(ua)) return 'android';
            return 'unknown';
          }
          var url = getOS() === 'ios' ? 'https://apps.apple.com/us/app/8-ball-pool/id543186831' : 'https://play.google.com/store/apps/details?id=com.miniclip.eightballpool';
          window.open(url, '_blank');
        }
      };
    `;
        const molocoScript = await this.minifyPlatformScript(molocoScriptCode, 'moloco-api');
        const comment = `<!-- Moloco: 单文件 HTML <5MB, CTA 无参数调用 FbPlayableAd.onCTAClick() -->`;
        // 在 </head> 之前插入平台特定的 API
        html = html.replace('</head>', `${molocoScript}${comment}</head>`);
        // 注入统一的 CTA 适配器
        html = await this.injectCTAAdapterAsync(html);
        html = await this.injectTrackingAdapterAsync(html);
        return html;
    }
    getPlatformScript() {
        return `
      // Moloco Playable Ad
      // 使用 FbPlayableAd.onCTAClick() 跳转（无参数）
      
      if (typeof FbPlayableAd !== 'undefined') {
        // 在 CTA 按钮点击时调用
        // FbPlayableAd.onCTAClick();
      }
    `;
    }
    validateOptions() {
        if (this.options.format && this.options.format !== 'html') {
            console.warn('警告: Moloco 使用单文件 HTML 格式');
        }
    }
}
