Spaces:
Sleeping
Sleeping
| 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" | |