# at top of persist_snapshot.py: from typing import List from typing import Dict, List from models.market import ( LinkError, LinkExternal, ) from db.session import get_session # --- Models are unchanged, see original code --- # ---------------------- Helper fns called from scraper ------------------------ async def save_link_reports(link_errors: List[Dict], link_externals: List[Dict]) -> None: async with get_session() as session: for e in link_errors: session.add(LinkError( product_slug=e.get("product"), href=e.get("href"), text=e.get("text"), top=e.get("top"), sub=e.get("sub"), target_slug=e.get("target_slug"), type=e.get("type"), )) for e in link_externals: session.add(LinkExternal( product_slug=e.get("product"), href=e.get("href"), text=e.get("text"), host=e.get("host"), )) await session.commit()