import os
from reportlab.lib.pagesizes import letter
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch

pdf_path = "/home/magdalena/eee/alunos/alberico-de-carvalho-santiago/Comparativo_3_Veleiros_Tradicionais.pdf"

doc = SimpleDocTemplate(
    pdf_path,
    pagesize=letter,
    rightMargin=36,
    leftMargin=36,
    topMargin=36,
    bottomMargin=36
)

styles = getSampleStyleSheet()

primary_color = colors.HexColor("#0F2B48")
secondary_color = colors.HexColor("#B45309")
dark_neutral = colors.HexColor("#1E293B")
light_neutral = colors.HexColor("#F8FAFC")
border_color = colors.HexColor("#CBD5E1")

title_style = ParagraphStyle(
    'DocTitle',
    parent=styles['Heading1'],
    fontName='Helvetica-Bold',
    fontSize=14,
    leading=18,
    textColor=primary_color,
    alignment=1,
    spaceAfter=3
)

subtitle_style = ParagraphStyle(
    'DocSubtitle',
    parent=styles['Normal'],
    fontName='Helvetica',
    fontSize=8.5,
    leading=11,
    textColor=secondary_color,
    alignment=1,
    spaceAfter=6
)

section_heading = ParagraphStyle(
    'SectionHeading',
    parent=styles['Heading2'],
    fontName='Helvetica-Bold',
    fontSize=10,
    leading=13,
    textColor=primary_color,
    spaceBefore=5,
    spaceAfter=3
)

body_style = ParagraphStyle(
    'BodyDark',
    parent=styles['Normal'],
    fontName='Helvetica',
    fontSize=8,
    leading=11,
    textColor=dark_neutral,
    spaceAfter=2
)

bullet_style = ParagraphStyle(
    'BulletDark',
    parent=body_style,
    leftIndent=10,
    firstLineIndent=-7,
    spaceAfter=2
)

table_header_style = ParagraphStyle(
    'TableHeader',
    parent=styles['Normal'],
    fontName='Helvetica-Bold',
    fontSize=7.2,
    leading=9.0,
    textColor=colors.white
)

table_body_style = ParagraphStyle(
    'TableBody',
    parent=styles['Normal'],
    fontName='Helvetica',
    fontSize=7.0,
    leading=9.0,
    textColor=dark_neutral
)

table_body_bold = ParagraphStyle(
    'TableBodyBold',
    parent=styles['Normal'],
    fontName='Helvetica-Bold',
    fontSize=7.0,
    leading=9.0,
    textColor=primary_color
)

story = []

# Cabeçalho
story.append(Paragraph("ESTUDO COMPARATIVO TRIPLO DE VELEIROS TRADICIONAIS (6,30 m)", title_style))
story.append(Paragraph("<b>Saveiro Baiano vs. Cape Cod Catboat vs. Llaüt Mediterrâneo</b><br/><b>Aluno:</b> Alberico de Carvalho Santiago | <b>Instituição:</b> Brana / Estaleiro Escola Embrião (EEE)", subtitle_style))
story.append(HRFlowable(width="100%", thickness=1.5, color=secondary_color, spaceAfter=5))

story.append(Paragraph("1. Os Três Mestres das Águas Costeiras", section_heading))
story.append(Paragraph(
    "Para fechar a análise comparativa do seu <b>Saveiro de 6,30 m</b>, adicionamos o lendário <b>Llaüt Tradicional (6,30 m)</b> das Ilhas Baleares (Maiorca/Espanha), formando a tríade clássica de barcos de trabalho com um só mastro:<br/>"
    "• <b>Saveiro da Bahia (Brasil):</b> Mestre da Baía de Todos-os-Santos. Fundo chato, 1 vela de pena, encalha reto em maré rasa.<br/>"
    "• <b>Cape Cod Catboat (EUA):</b> Mestre dos bancos de areia da Nova Inglaterra. Boca gigante (3,10 m), bolina retrátil e 1 vela áurica.<br/>"
    "• <b>Llaüt de Maiorca (Mediterrâneo):</b> Mestre do mar agitado mediterrâneo. Popa e proa afiladas (<i>double-ender</i>) e vela latina pura.",
    body_style
))

# Tabela Tripla
t_data = [
    [Paragraph("Característica", table_header_style), Paragraph("Saveiro de Pena (6,30 m)<br/>[Bahia, Brasil]", table_header_style), Paragraph("Cape Cod Catboat (6,50 m)<br/>[EUA]", table_header_style), Paragraph("Llaüt Tradicional (6,30 m)<br/>[Mediterrâneo, Espanha]", table_header_style)],
    [Paragraph("Comprimento (LOA)", table_body_bold), Paragraph("6,30 m (20,7 ft)", table_body_style), Paragraph("6,50 m (21,4 ft)", table_body_style), Paragraph("6,30 m a 6,36 m (20,8 ft)", table_body_style)],
    [Paragraph("Boca (Largura)", table_body_bold), Paragraph("2,40 m a 2,50 m", table_body_style), Paragraph("<b>3,10 m</b> (Muito largo)", table_body_style), Paragraph("2,42 m", table_body_style)],
    [Paragraph("Calado e Quilha", table_body_bold), Paragraph("0,45 m (Fundo chato com lastro interno)", table_body_style), Paragraph("0,60 m / 1,55 m (Bolina retrátil)", table_body_style), Paragraph("0,65 m (Quilha fixa contínua)", table_body_style)],
    [Paragraph("Formato da Popa", table_body_bold), Paragraph("Espelho largo com leme externo", table_body_style), Paragraph("Espelho largo com leme 'orelha'", table_body_style), Paragraph("<b>Popa fina curva (*Double-ender*)</b>", table_body_style)],
    [Paragraph("Tipo de Vela", table_body_bold), Paragraph("<b>Vela de Pena (Latina Baiana)</b>", table_body_style), Paragraph("<b>Vela Áurica (Gaff Rig)</b>", table_body_style), Paragraph("<b>Vela Latina Mediterrânea</b>", table_body_style)],
    [Paragraph("Área Vélica", table_body_bold), Paragraph("~21,5 m² (Pena de 7,80 m)", table_body_style), Paragraph("~36,0 m² (Vela baixa gigante)", table_body_style), Paragraph("~24,0 m² (Antena de 8,20 m)", table_body_style)],
    [Paragraph("Motor Diesel", table_body_bold), Paragraph("<b>10 a 14 CV</b> (Yanmar B10 / Agrale)", table_body_style), Paragraph("<b>15 a 20 CV</b> (Yanmar 2YM15)", table_body_style), Paragraph("<b>15 a 25 CV</b> (Solé Diesel / Yanmar)", table_body_style)],
    [Paragraph("Comportamento no Mar", table_body_bold), Paragraph("Excelente na baía; encalha em praia rasa sem tombar.", table_body_style), Paragraph("Muito estável pelo casco largo; bolina sobe na areia.", table_body_style), Paragraph("Corta marola de popa e proa com suavidade sem embarcar água.", table_body_style)]
]

t_table = Table(t_data, colWidths=[1.4*inch, 2.0*inch, 2.0*inch, 2.0*inch])
t_table.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), primary_color),
    ('ALIGN', (0,0), (-1,-1), 'LEFT'),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('GRID', (0,0), (-1,-1), 0.5, border_color),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [light_neutral, colors.white]),
    ('TOPPADDING', (0,0), (-1,-1), 2.5),
    ('BOTTOMPADDING', (0,0), (-1,-1), 2.5),
]))
story.append(t_table)
story.append(Spacer(1, 4))

story.append(Paragraph("2. A Conexão Histórica entre o Saveiro e o Llaüt", section_heading))
story.append(Paragraph(
    "A comparação com o <b>Llaüt</b> é a mais reveladora de todas: a <b>Vela de Pena do Saveiro Baiano é filha direta da Vela Latina do Mediterrâneo</b> trazida pelos marinheiros portugueses e espanhóis na colonização.<br/>"
    "• O <b>Llaüt</b> manteve as duas pontas afiladas (proa e popa curvas) para enfrentar as ondas curtas e traiçoeiras do Mediterrâneo.<br/>"
    "• O <b>Saveiro Baiano</b> adaptou o conceito para a Baía de Todos-os-Santos: abriu a popa em espelho largo e achatou o fundo para poder encalhar nas praias de maré e carregar mais pescado e mercadorias.",
    body_style
))

doc.build(story)
print("PDF Comparativo Triplo gerado com sucesso!")
