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: aid = int(raw)
    except (TypeError, ValueError): ignored.append(raw); continue
    if aid 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=aid, 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()
