from __future__ import annotations from app.schemas.analyze import AnalyzeItem from app.services.analyze.base import AnalyzerContribution, AnalyzeContext from app.services.analyze.tld_matrix import run_tld_matrix class TldMatrixAnalyzer: key = "tld_matrix" ttl_seconds = 60 * 30 # 30m (availability can change) async def analyze(self, ctx: AnalyzeContext) -> list[AnalyzerContribution]: rows = await run_tld_matrix(ctx.domain) item = AnalyzeItem( key="tld_matrix", label="TLD Matrix", value=[row.__dict__ for row in rows], status="info", source="dns", details={"tlds": [r.tld for r in rows]}, ) return [AnalyzerContribution(quadrant="market", items=[item])]