import re, sys, os; sys.path.insert(0,"/app")
from app.database import SessionLocal
from app.models.question import Question, QuestionVersion
from scripts.triage_question_images import image_bytes
db = SessionLocal()
# Questions whose image was just removed: image_path NULL but a snapshot has one.
rows = db.query(QuestionVersion).filter(QuestionVersion.question_id.in_(
    [r[0] for r in db.query(Question.id).filter(Question.image_path.is_(None)).all()])).all()
picked = []
for v in rows:
    p = (v.snapshot or {}).get("image_path")
    if p and db.get(Question, v.question_id).image_path is None:
        picked.append((v.question_id, p))
picked = sorted(set(picked))
print("removed with a recoverable path:", len(picked))
os.makedirs("/out3", exist_ok=True)
for qid, path in picked[:3] + picked[len(picked)//2:len(picked)//2+2]:
    q = db.get(Question, qid)
    got = image_bytes(path)
    if got:
        open(f"/out3/q{qid}{'.png' if 'png' in got[1] else '.jpg'}","wb").write(got[0])
    print(f"=== q{qid} {path} ===")
    print("STEM:", re.sub(r'\s+',' ',q.question_text)[:260])
    print("EXPL:", re.sub(r'\s+',' ',(q.explanation or ''))[:200])
