import os
from reportlab.lib.pagesizes import letter, landscape
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/Estudo_Similar_Brasileiro_Classe_Guanabara.pdf"

doc = SimpleDocTemplate(
    pdf_path,
    pagesize=landscape(letter),
    rightMargin=30,
    leftMargin=30,
    topMargin=26,
    bottomMargin=26
)

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=13,
    leading=17,
    textColor=primary_color,
    alignment=1,
    spaceAfter=2
)

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

section_heading = ParagraphStyle(
    'SectionHeading',
    parent=styles['Heading2'],
    fontName='Helvetica-Bold',
    fontSize=9.5,
    leading=12,
    textColor=primary_color,
    spaceBefore=4,
    spaceAfter=2
)

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

bullet_style = ParagraphStyle(
    'BulletDark',
    parent=body_style,
    leftIndent=8,
    firstLineIndent=-6,
    spaceAfter=1.5
)

table_header_style = ParagraphStyle(
    'TableHeader',
    parent=styles['Normal'],
    fontName='Helvetica-Bold',
    fontSize=6.8,
    leading=8.5,
    textColor=colors.white,
    alignment=1
)

table_body_style = ParagraphStyle(
    'TableBody',
    parent=styles['Normal'],
    fontName='Helvetica',
    fontSize=6.5,
    leading=8.2,
    textColor=dark_neutral,
    alignment=1
)

table_body_left = ParagraphStyle(
    'TableBodyLeft',
    parent=table_body_style,
    alignment=0
)

table_body_bold = ParagraphStyle(
    'TableBodyBold',
    parent=styles['Normal'],
    fontName='Helvetica-Bold',
    fontSize=6.5,
    leading=8.2,
    textColor=primary_color,
    alignment=1
)

story = []

# Cabeçalho
story.append(Paragraph("ESTUDO DE SIMILARIDADE BRASILEIRO: VELEIRO CLÁSSICO CLASSE GUANABARA (24 ft)", title_style))
story.append(Paragraph("<b>O Equivalente Nacional do Dark Harbor: Daysailer Clássico em Madeira da Década de 1950</b> | Aluno: Alberico | Brana / EEE", subtitle_style))
story.append(HRFlowable(width="100%", thickness=1.2, color=secondary_color, spaceAfter=4))

# 1. Introdução
story.append(Paragraph("1. O Similar Nacional: A Famosa 'Classe Guanabara' (1950)", section_heading))
story.append(Paragraph(
    "Para encontrar o similar exato do <b>Dark Harbor 17 1/2</b> no Brasil, precisamos olhar para a era de ouro da marcenaria naval clássica brasileira. "
    "O equivalente mais perfeito, reverenciado e histórico construído em solo nacional é o <b>VELEIRO CLASSE GUANABARA (24 pés / 7,20 m)</b>, "
    "projetado na virada dos anos 1940 para 1950 e construído em estaleiros lendários como o <i>Estaleiro Quaresma</i> (Niterói - RJ) e estaleiros artesanais paulistas e paranaenses. "
    "Assim como o veleiro americano da sua foto, o <i>Guanabara</i> foi desenhado como um <b>daysailer clássico de linhas puras em madeira nobre (cedro, peroba e canela)</b>, "
    "com longos balanços de proa e popa, braçolas em verniz brilhante e cockpit aberto para navegar com elegância e espírito de equipe:",
    body_style
))

# 2. Tabela Comparativa Completa
table_data = [
    [
        Paragraph("Parâmetro Náutico", table_header_style),
        Paragraph("Veleiro da Foto<br/>(Dark Harbor 17 1/2 — EUA)", table_header_style),
        Paragraph("Similar Brasileiro<br/>(Classe Guanabara — Brasil)", table_header_style),
        Paragraph("Adaptação Técnica para as Águas Brasileiras", table_header_style)
    ],
    [
        Paragraph("Comprimento Total (LOA)", table_body_bold),
        Paragraph("<b>7,87 m</b> (25' 10\")", table_body_style),
        Paragraph("<b>7,20 m</b> (23' 8\" / 24 ft)", table_body_style),
        Paragraph("Ambos são veleiros de dia da faixa de 24 a 25 pés com proporções esguias.", table_body_left)
    ],
    [
        Paragraph("Comprimento Linha d'Água (LWL)", table_body_bold),
        Paragraph("<b>5,33 m</b> (17' 6\")", table_body_style),
        Paragraph("<b>6,00 m</b> (19' 8\")", table_body_style),
        Paragraph("O Guanabara tem balanços ligeiramente mais curtos e maior linha d'água útil na calmaria.", table_body_left)
    ],
    [
        Paragraph("Boca Máxima (Largura)", table_body_bold),
        Paragraph("<b>1,91 m</b> (6' 3\")", table_body_style),
        Paragraph("<b>2,36 m</b> (7' 9\")", table_body_style),
        Paragraph("O similar brasileiro é mais largo para dar maior estabilidade de forma e acomodar até 4 velejadores confortáveis.", table_body_left)
    ],
    [
        Paragraph("Calado e Plano de Deriva", table_body_bold),
        Paragraph("<b>1,30 m</b> (Quilha fixa profunda de chumbo)", table_body_style),
        Paragraph("<b>0,35 m a 1,40 m</b> (Bolina pesada de ferro retrátil)", table_body_style),
        Paragraph("<b>Adaptação genial para o Brasil:</b> a bolina retrátil do Guanabara recolhe para 35 cm, permitindo encalhar na areia da praia na maré baixa!", table_body_left)
    ],
    [
        Paragraph("Material de Construção", table_body_bold),
        Paragraph("Madeira carvel (cedro/carvalho branco) ou fibra", table_body_style),
        Paragraph("Madeiras nobres brasileiras: Cedro, Peroba-rosa e Canela", table_body_style),
        Paragraph("Construção artesanal tradicional em madeira de lei brasileira, com costelas curvadas a vapor.", table_body_left)
    ],
    [
        Paragraph("Área Vélica Total", table_body_bold),
        Paragraph("<b>28,8 m²</b> (Main 20,5m² + Buja 8,3m²)", table_body_style),
        Paragraph("<b>20,0 m²</b> (Grande 13,5m² + Buja 6,5m²)", table_body_style),
        Paragraph("Plano vélico calibrado para ventos de baía (Guanabara e Santos), muito fácil de manusear.", table_body_left)
    ],
    [
        Paragraph("Tipo de Armação", table_body_bold),
        Paragraph("Sloop fracionado com buja autovirante", table_body_style),
        Paragraph("Sloop fracionado clássico marconi", table_body_style),
        Paragraph("Mastro em pinho do paraná ou alumínio com retranca baixa e leme de cana na popa.", table_body_left)
    ],
    [
        Paragraph("Missão e Uso", table_body_bold),
        Paragraph("Daysailing e regatas clássicas no Maine", table_body_style),
        Paragraph("Regatas clássicas (Rio, SP, PR) e passeio de baía", table_body_style),
        Paragraph("Foi a classe precursora das regatas e do iatismo de equipe nos grandes clubes náuticos do Brasil.", table_body_left)
    ]
]

t_comp = Table(
    table_data,
    colWidths=[1.8*inch, 2.3*inch, 2.3*inch, 3.8*inch]
)

t_comp.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), primary_color),
    ('ALIGN', (0,0), (-1,-1), 'CENTER'),
    ('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_comp)
story.append(Spacer(1, 4))

# 3. Análise Conclusiva
story.append(Paragraph("2. A Genialidade da Adaptação Brasileira", section_heading))
story.append(Paragraph(
    "• <b>Por que o Guanabara é o irmão brasileiro do Dark Harbor?</b> Se você colocar o <i>Dark Harbor 17 1/2</i> ao lado de um <i>Classe Guanabara</i>, a silhueta de perfil é quase a mesma: proa lançada em colher (*spoon bow*), popa em balanço longo saindo da água e um cockpit amplo circundado por braçolas de madeira envernizada.<br/>"
    "• <b>A Diferença Crucial para a Costa Brasileira:</b> O barco americano foi feito para o Maine, onde a costa é de pedras e água muito profunda (quilha fixa de 1,30 m). No Brasil, com nossas praias de maré, bancos de areia e restingas (como a Baía de Guanabara, Santos e a Baía de Todos-os-Santos), o projeto nacional usou uma <b>pesada bolina retrátil de ferro fundido</b>. Com a bolina arriada (1,40 m), ele corta o contravento como um campeão; ao se aproximar da praia, puxa-se o cabo da bolina e o calado cai para apenas <b>35 centímetros</b>, permitindo pousar na areia da praia sem bater a quilha!",
    body_style
))

doc.build(story)
print("PDF Similar Brasileiro Guanabara gerado com sucesso!")
