import requests
from django.conf import settings


def generate_pdf(html_content):
    """
    Generate PDF from HTML using HTML2PDF Rocket.
    Returns PDF bytes.
    """

    api_url = "https://api.html2pdfrocket.com/pdf"

    data = {
        "apikey": settings.HTML2PDFROCKET_API_KEY,
        "value": html_content,

        # Page
        "PageSize": "A4",

        # PDF margins
        "MarginTop": "40",
        "MarginRight": "20",
        "MarginBottom": "20",
        "MarginLeft": "20",

        # Rendering
        "ImageQuality": "100",
        "Dpi": "300",
        "UsePrintStylesheet": "true",
    }

    response = requests.post(
        api_url,
        data=data,
        timeout=60,
    )

    if response.status_code != 200:
        raise Exception(
            f"PDF generation failed: "
            f"{response.status_code} - {response.text}"
        )

    return response.content