#!/usr/bin/env python3
from __future__ import annotations

import argparse
import sqlite3
from pathlib import Path

DB = Path('/home/agent/.hermes/assets/Gesundheit/health_data.db')
VALID = ['nicht_geprueft','relevant','arzttermin','archiviert','irrelevant']


def main() -> int:
    ap = argparse.ArgumentParser(description='Set HealthManager document review metadata.')
    ap.add_argument('doc_id', type=int)
    ap.add_argument('--status', choices=VALID, required=True)
    ap.add_argument('--category')
    ap.add_argument('--institution')
    args = ap.parse_args()
    con = sqlite3.connect(DB)
    try:
        sets = ['review_status=?']; vals = [args.status]
        if args.category:
            sets.append('kategorie=?'); vals.append(args.category)
        if args.institution:
            sets.append('institution=?'); vals.append(args.institution)
        vals.append(args.doc_id)
        cur = con.execute(f"UPDATE dokumente SET {', '.join(sets)} WHERE id=?", vals)
        con.commit()
        if cur.rowcount == 0:
            raise SystemExit(f'Dokument nicht gefunden: {args.doc_id}')
        print(f'Dokument {args.doc_id} gesetzt: {args.status}')
    finally:
        con.close()
    return 0

if __name__ == '__main__':
    raise SystemExit(main())
