import json
from app.database import SessionLocal
from app.models.article import Article, ArticleAlias

data = json.load(open("/app/aliases.json"))
db = SessionLocal()
known = {r[0] for r in db.query(Article.id).filter(Article.deleted_at.is_(None)).all()}
rows, ignored = [], []
for raw, aliases in data.items():
    try:
        article_id = int(raw)
    except (TypeError, ValueError):
        ignored.append(raw); continue
    if article_id not in known:
        ignored.append(raw); continue
    for alias in aliases or []:
        text = " ".join(str(alias or "").split())[:120]
        if text:
            rows.append(ArticleAlias(article_id=article_id, alias=text))
db.query(ArticleAlias).delete()
db.bulk_save_objects(rows)
db.commit()
print("articles:", len({r.article_id for r in rows}), "aliases:", len(rows), "ignored:", ignored)
db.close()
