r"""
Standalone test script for PDFService.

Run with:
    cd backend
    .\venv\Scripts\activate
    python tests/test_pdf_generation.py

Produces a real PDF file in tests/output/test_cv.pdf for visual inspection.
"""

import sys
from pathlib import Path

# Add parent dir to sys.path so we can `from app.services...` when running directly
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))

from app.services.pdf_service import pdf_service


MOCK_CV_DATA = {
    "personal_info": {
        "full_name": "Youssef Alaoui",
        "job_title": "Chef de chantier / Maçon",
        "phone": "+212 600 000 000",
        "email": "youssef.alaoui@email.com",
        "address": "Casablanca, Maroc",
    },
    "profil": (
        "Chef de chantier et maçon qualifié avec plus de 10 ans d'expérience "
        "dans le gros œuvre et le bâtiment. Capable de gérer une équipe sur le "
        "terrain tout en assurant la réalisation des travaux dans le strict "
        "respect des normes de sécurité et des délais."
    ),
    "experiences": [
        {
            "position": "Chef d'équipe Maçonnerie",
            "company": "BatiPro Construction",
            "date_range": "2018 - Présent",
            "description": (
                "Gestion et animation d'une équipe de 5 ouvriers. Supervision du "
                "coulage des fondations et des dalles. Suivi rigoureux du planning "
                "chantier et de la qualité des travaux livrés."
            ),
        },
        {
            "position": "Maçon Coffreur",
            "company": "Constructa",
            "date_range": "2012 - 2018",
            "description": (
                "Montage des structures porteuses (murs, poteaux, planchers). "
                "Respect strict des plans de l'architecte et des normes de sécurité."
            ),
        },
    ],
    "formations": [
        {
            "degree": "CAP Maçonnerie",
            "institution": "CFA Bâtiment, Casablanca",
            "date_range": "2011 - 2012",
        },
        {
            "degree": "Formation Sécurité Chantier",
            "institution": "Centre de Formation Professionnelle",
            "date_range": "2014",
        },
    ],
    "skills": [
        "Lecture de plans",
        "Coffrage",
        "Ferraillage",
        "Gestion d'équipe",
        "Respect des normes de sécurité",
        "Suivi de chantier",
    ],
    "languages": [
        {"name": "Arabe (Darija)", "level": "Langue maternelle"},
        {"name": "Français", "level": "Avancé"},
        {"name": "Espagnol", "level": "Intermédiaire"},
    ],
}


def main() -> int:
    output_dir = Path(__file__).resolve().parent / "output"
    output_dir.mkdir(exist_ok=True)
    output_path = output_dir / "test_cv.pdf"

    print(f"[test_pdf_generation] Generating CV PDF...")
    pdf_bytes = pdf_service.generate_cv_pdf(MOCK_CV_DATA)

    output_path.write_bytes(pdf_bytes)
    print(f"[test_pdf_generation] CV PDF written to: {output_path}")
    print(f"[test_pdf_generation] Size: {len(pdf_bytes):,} bytes")
    return 0


if __name__ == "__main__":
    sys.exit(main())
