from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from pypdf import PdfReader, PdfWriter

PAGE_WIDTH, PAGE_HEIGHT = A4

temp_pdf = "card_temp.pdf"

c = canvas.Canvas(temp_pdf, pagesize=A4)

y = PAGE_HEIGHT - 40

def desenhar_card(c, y, dados, assinatura_img):

    altura_card = 100

    c.rect(20, y - altura_card, PAGE_WIDTH - 40, altura_card)

    c.setFont("Helvetica-Bold", 11)
    c.drawString(30, y - 20, dados["nome"])

    c.setFont("Helvetica", 9)

    linhas = [
        f"IP: {dados['ip']}",
        f"Dispositivo: {dados['device']}",
        f"Data e hora: {dados['data']}",
        f"E-mail: {dados['email']}",
        f"Telefone: {dados['telefone']}",
        f"Token: {dados['token']}"
    ]

    yy = y - 35

    for linha in linhas:
        c.drawString(30, yy, linha)
        yy -= 12

    c.drawImage(
        assinatura_img,
        PAGE_WIDTH - 180,
        y - 85,
        width=170,
        height=70,
        preserveAspectRatio=True,
        anchor='c'
    )

dados = {
    "nome": "VITOR HUGO PINHEIRO BICCA",
    "ip": "111.111.111.111",
    "device": "Android",
    "data": "12/03/2026",
    "email": "vitor.bicca@gmail.com",
    "telefone": "5547996623966",
    "token": "****"
}

desenhar_card(c, y, dados, "assinatura.png")

c.save()

reader_original = PdfReader("CONTRATO LOCAÇAO APTO JESSICA.pdf")
reader_card = PdfReader(temp_pdf)

writer = PdfWriter()

for page in reader_original.pages:
    writer.add_page(page)

for page in reader_card.pages:
    writer.add_page(page)

with open("CONTRATO_FINAL.pdf", "wb") as f:
    writer.write(f)