#!/usr/bin/env python3
"""Background worker for document analysis — called as subprocess."""
import json, sys, os

sys.path.insert(0, os.path.dirname(__file__))
from module_doc_scanner import _call_zai
import sqlite3
from datetime import datetime

DB_PATH = os.path.join(os.path.dirname(__file__), 'hseq_kennisbank.db')

file_paths = json.loads(sys.argv[1])
context = sys.argv[2]
language = sys.argv[3]
model = sys.argv[4]
analysis_id = int(sys.argv[5])

try:
    result_text, error = _call_zai(file_paths, context, language, model=model)
    conn = sqlite3.connect(DB_PATH)
    c = conn.cursor()
    if error:
        c.execute("UPDATE scanner_analyses SET status=?, error_msg=? WHERE id=?",
                  ('error', error, analysis_id))
    else:
        c.execute("UPDATE scanner_analyses SET status=?, result_json=?, completed_at=? WHERE id=?",
                  ('completed', json.dumps({'text': result_text}), datetime.now().isoformat(), analysis_id))
    conn.commit()
    conn.close()
except Exception as e:
    conn = sqlite3.connect(DB_PATH)
    c = conn.cursor()
    c.execute("UPDATE scanner_analyses SET status=?, error_msg=? WHERE id=?",
              ('error', str(e), analysis_id))
    conn.commit()
    conn.close()
