from __future__ import annotations from typing import Dict, Any from . import storage class BaseAdapter: name = "base" def __init__(self, campaign_id: str): self.campaign_id = campaign_id def send(self, variant_id: str, text: str, context: Dict[str, Any]) -> Dict[str, Any]: # 実配信の代わりに監査ログへ記録。実装時はAPI呼び出しに差し替え。 payload = {"adapter": self.name, "variant_id": variant_id, "text": text, "context": context} storage.audit(self.campaign_id, f"adapter_send:{self.name}", payload) return {"ok": True, "note": f"stubbed send via {self.name}"} class XAdapter(BaseAdapter): name = "x" class MetaAdapter(BaseAdapter): name = "meta" class GoogleAdsAdapter(BaseAdapter): name = "google"