#!/usr/bin/env python3
import sys
import json
import os

try:
    import fitz  # PyMuPDF
except Exception as e:
    print(json.dumps({
        "ok": False,
        "error": "PyMuPDF is not available. Install with: pip3 install pymupdf",
        "details": str(e)
    }))
    sys.exit(1)


def main():
    if len(sys.argv) < 3:
        print(json.dumps({
            "ok": False,
            "error": "Usage: split_invoice_pdf.py input.pdf output_dir"
        }))
        sys.exit(1)

    input_pdf = sys.argv[1]
    output_dir = sys.argv[2]

    if not os.path.isfile(input_pdf):
        print(json.dumps({
            "ok": False,
            "error": f"Input PDF not found: {input_pdf}"
        }))
        sys.exit(1)

    os.makedirs(output_dir, exist_ok=True)

    try:
        doc = fitz.open(input_pdf)
        pages = []

        for index in range(len(doc)):
            new_doc = fitz.open()
            new_doc.insert_pdf(doc, from_page=index, to_page=index)

            page_number = index + 1
            filename = f"page_{page_number:03d}.pdf"
            output_path = os.path.join(output_dir, filename)

            new_doc.save(output_path)
            new_doc.close()

            pages.append({
                "page_number": page_number,
                "filename": filename,
                "path": output_path
            })

        doc.close()

        print(json.dumps({
            "ok": True,
            "page_count": len(pages),
            "pages": pages
        }))

    except Exception as e:
        print(json.dumps({
            "ok": False,
            "error": "Failed to split PDF",
            "details": str(e)
        }))
        sys.exit(1)


if __name__ == "__main__":
    main()