"""AA-045 compatibility facade; persistence is owned by sma_core."""
from __future__ import annotations
import sqlite3
from datetime import datetime, timezone
from published_at_normalizer import normalize_published_at
from sma_core.signal_enrichment import SignalEnrichmentRepository
from sma_core.signal_intelligence import SignalIntelligenceRepository
def enrich_signal_row(conn: sqlite3.Connection, signal_id: str, data: dict):
"""Delegate technical metadata writes to the authorized core port."""
SignalEnrichmentRepository(conn).enrich(signal_id, data)
def find_by_external_id(conn: sqlite3.Connection, platform: str, external_id: str):
if not external_id:
return None
row = conn.execute(
"SELECT signal_id FROM signals WHERE external_id=? AND (source_platform=? OR ?='')",
(external_id, platform, platform),
).fetchone()
return row["signal_id"] if row else None
def update_cluster_meta(conn, cluster_id: str, signal_ids: list, bonus: float):
"""Compatibility facade for the authorized intelligence port."""
SignalIntelligenceRepository(conn).apply_cluster(cluster_id, signal_ids, bonus)
return datetime.now(timezone.utc).isoformat()