# at top of persist_snapshot.py:
from typing import List

from typing import Dict, List

from models.market import (
    LinkError,
    LinkExternal,
)
from shared.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()
