from pathlib import Path
import sys

try:
    import fitz
except ImportError:
    print("PyMuPDF fehlt. Bitte einmal ausfuehren: python -m pip install pymupdf")
    sys.exit(1)


ROOT = Path(__file__).resolve().parents[1]
DOCUMENTS_DIR = ROOT / "public" / "dokumente"
PREVIEWS_DIR = DOCUMENTS_DIR / "previews"


def build_preview(pdf_path: Path) -> Path:
    preview_path = PREVIEWS_DIR / f"{pdf_path.stem}-page-1.png"

    with fitz.open(pdf_path) as document:
        if document.page_count == 0:
            raise ValueError("PDF hat keine Seiten")

        pixmap = document[0].get_pixmap(matrix=fitz.Matrix(1.4, 1.4), alpha=False)
        pixmap.save(preview_path)

    return preview_path


def main() -> int:
    PREVIEWS_DIR.mkdir(parents=True, exist_ok=True)
    pdfs = sorted(DOCUMENTS_DIR.glob("*.pdf"))

    if not pdfs:
        print("Keine PDFs gefunden.")
        return 0

    print(f"{len(pdfs)} PDF(s) gefunden.")

    for pdf_path in pdfs:
        try:
            preview_path = build_preview(pdf_path)
            print(f"OK  {pdf_path.name} -> {preview_path.relative_to(ROOT)}")
        except Exception as exc:
            print(f"FEHLER  {pdf_path.name}: {exc}")

    return 0


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