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_Similares_Classic_Daysailer.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 COMPARATIVO DE SIMILARES: VELEIROS CLÁSSICOS DE DIAS (CLASSIC DAYSAILERS)", title_style))
story.append(Paragraph("<b>Identificação da Foto (Dark Harbor 17 1/2) e Confronto com os Maiores Clássicos Mundiais</b> | Aluno: Alberico | Brana / EEE", subtitle_style))
story.append(HRFlowable(width="100%", thickness=1.2, color=secondary_color, spaceAfter=4))

# 1. Identificação do Barco da Foto
story.append(Paragraph("1. Identificação do Veleiro da Imagem de Referência", section_heading))
story.append(Paragraph(
    "A embarcação da fotografia é o lendário <b>DARK HARBOR 17 1/2</b>, projetado em 1908 pelo célebre arquiteto naval norte-americano <b>B. B. Crowninshield</b> "
    "para o prestigiado <i>Tarratine Yacht Club</i> em Islesboro, na costa recortada e fria do Maine (EUA). "
    "Trata-se de uma das classes *One-Design* de madeira e compósito mais longevas e elegantes do mundo, frequentemente restaurada e reproduzida por estaleiros de arte como <i>Artisan Boatworks</i> e <i>Brooklin Boat Yard</i>. "
    "Suas marcas registradas são os <b>longos balanços de proa e popa (*overhangs*)</b>, <b>proa em colher (*spoon bow*)</b>, <b>quilha longa com calcanhar de leme integrado</b>, "
    "<b>cockpit aberto circundado por braçolas curvas em mogno maciço envernizado</b>, e armação sloop fracionada com <b>buja autovirante sobre clube (*club-footed jib*)</b>, permitindo navegar em dupla ou em solitário com total tranquilidade.",
    body_style
))

# 2. Tabela de Similares
table_data = [
    [
        Paragraph("Veleiro / Estaleiro", table_header_style),
        Paragraph("País / Origem", table_header_style),
        Paragraph("Comprimento Total (LOA)<br/>(m / ft)", table_header_style),
        Paragraph("Comprimento Linha d'Água (LWL)<br/>(m / ft)", table_header_style),
        Paragraph("Boca (B)<br/>(m / ft)", table_header_style),
        Paragraph("Calado (T)<br/>(m / ft)", table_header_style),
        Paragraph("Deslocamento<br/>(kg / lbs)", table_header_style),
        Paragraph("Lastro de Chumbo<br/>(kg / % razão)", table_header_style),
        Paragraph("Área Vélica<br/>(m² / sq ft)", table_header_style),
        Paragraph("Armação e Conceito Construtivo", table_header_style)
    ],
    # MODELO DA FOTO (DARK HARBOR 17 1/2)
    [
        Paragraph("★ DARK HARBOR 17 1/2<br/>(Veleiro da Foto)", table_body_bold),
        Paragraph("EUA (Maine / 1908)<br/>B.B. Crowninshield", table_body_style),
        Paragraph("<b>7,87 m</b><br/>(25' 10\")", table_body_style),
        Paragraph("<b>5,33 m</b><br/>(17' 6\")", table_body_style),
        Paragraph("<b>1,91 m</b><br/>(6' 3\")", table_body_style),
        Paragraph("<b>1,30 m</b><br/>(4' 3\")", table_body_style),
        Paragraph("1.565 kg<br/>(3.450 lbs)", table_body_style),
        Paragraph("<b>635 kg</b><br/>(41% lastro)", table_body_style),
        Paragraph("<b>28,8 m²</b><br/>(310 sq ft)", table_body_style),
        Paragraph("Sloop fracionado c/ buja autovirante armada em clube. Quilha longa corrida c/ leme no calcanhar; braçolas em mogno envernizado.", table_body_left)
    ],
    # SIMILAR 1: HERRESHOFF 12 1/2
    [
        Paragraph("Herreshoff 12 1/2<br/>(Doughdish)", table_body_left),
        Paragraph("EUA (Rhode Island / 1914)<br/>Nathanael Herreshoff", table_body_style),
        Paragraph("4,83 m<br/>(15' 10\")", table_body_style),
        Paragraph("3,81 m<br/>(12' 6\")", table_body_style),
        Paragraph("1,78 m<br/>(5' 10\")", table_body_style),
        Paragraph("0,76 m<br/>(2' 6\")", table_body_style),
        Paragraph("567 kg<br/>(1.250 lbs)", table_body_style),
        Paragraph("<b>333 kg</b><br/>(59% lastro!)", table_body_style),
        Paragraph("13,0 m²<br/>(140 sq ft)", table_body_style),
        Paragraph("O pai de todos os daysailers clássicos americanos. Armação gaff ou marconi; quilha rasa com bolina de bronze interna; cockipit de madeira aberto.", table_body_left)
    ],
    # SIMILAR 2: RUSTLER 24
    [
        Paragraph("Rustler 24", table_body_left),
        Paragraph("Reino Unido (Cornwall)<br/>Rustler Yachts / D. Thomas", table_body_style),
        Paragraph("7,32 m<br/>(24' 0\")", table_body_style),
        Paragraph("5,38 m<br/>(17' 8\")", table_body_style),
        Paragraph("1,91 m<br/>(6' 3\")", table_body_style),
        Paragraph("1,04 m<br/>(3' 5\")", table_body_style),
        Paragraph("1.640 kg<br/>(3.615 lbs)", table_body_style),
        Paragraph("<b>940 kg</b><br/>(57% lastro!)", table_body_style),
        Paragraph("26,0 m²<br/>(279 sq ft)", table_body_style),
        Paragraph("Evolução moderna do clássico International Dragon. Quilha corrida profunda maciça de chumbo, convés em teca com buja autovirante.", table_body_left)
    ],
    # SIMILAR 3: TOFINOU 7
    [
        Paragraph("Tofinou 7", table_body_left),
        Paragraph("França (La Rochelle)<br/>Latitude 46 / Joubert-Nivelt", table_body_style),
        Paragraph("7,00 m<br/>(23' 0\")", table_body_style),
        Paragraph("5,40 m<br/>(17' 9\")", table_body_style),
        Paragraph("2,25 m<br/>(7' 5\")", table_body_style),
        Paragraph("1,10 m<br/>(3' 7\")", table_body_style),
        Paragraph("1.300 kg<br/>(2.866 lbs)", table_body_style),
        Paragraph("<b>500 kg</b><br/>(38% lastro)", table_body_style),
        Paragraph("24,5 m²<br/>(264 sq ft)", table_body_style),
        Paragraph("Ícone europeu da categoria *Spirit of Tradition*. Convés inteiro revestido em teca e mogno envernizado com fibra de vidro em infusão.", table_body_left)
    ],
    # SIMILAR 4: ALERION EXPRESS 28
    [
        Paragraph("Alerion Express 28", table_body_left),
        Paragraph("EUA (Rhode Island)<br/>Alerion Yachts / C. Schumacher", table_body_style),
        Paragraph("8,61 m<br/>(28' 3\")", table_body_style),
        Paragraph("6,93 m<br/>(22' 9\")", table_body_style),
        Paragraph("2,50 m<br/>(8' 2\")", table_body_style),
        Paragraph("1,37 m<br/>(4' 6\")", table_body_style),
        Paragraph("2.040 kg<br/>(4.497 lbs)", table_body_style),
        Paragraph("<b>907 kg</b><br/>(45% lastro)", table_body_style),
        Paragraph("32,7 m²<br/>(352 sq ft)", table_body_style),
        Paragraph("Daysailer de alto luxo baseado nas linhas originais do *Alerion* de Nat Herreshoff (1912). Mastro em carbono, leme suspenso e buja autovirante.", table_body_left)
    ]
]

t_comp = Table(
    table_data,
    colWidths=[1.4*inch, 1.2*inch, 1.0*inch, 1.0*inch, 0.8*inch, 0.8*inch, 1.0*inch, 1.0*inch, 0.9*inch, 2.7*inch]
)

t_comp.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), primary_color),
    ('BACKGROUND', (0,1), (-1,1), colors.HexColor("#FEF3C7")), # Destaque suave para o Dark Harbor 17
    ('ALIGN', (0,0), (-1,-1), 'CENTER'),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('GRID', (0,0), (-1,-1), 0.5, border_color),
    ('ROWBACKGROUNDS', (0,2), (-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 Hidrodinâmica
story.append(Paragraph("2. A Magia Hidrodinâmica dos Balanços Longos (Overhangs)", section_heading))
story.append(Paragraph(
    "• <b>Comprimento Dinâmico na Linha d'Água:</b> O <i>Dark Harbor 17 1/2</i> mede <b>7,87 m no total (LOA)</b>, mas apenas <b>5,33 m na linha d'água estática (LWL)</b>. "
    "Quando o vento sopra e o veleiro aderna suavemente (exatamente como na foto!), a proa em colher e o balanço de popa entram na água, aumentando a linha d'água dinâmica para mais de <b>6,50 metros</b>. "
    "Isso eleva a velocidade de casco instantaneamente para além de 6,2 nós sem esforço!<br/>"
    "• <b>Estabilidade de Peso (Lastro de Chumbo de 41% a 59%):</b> Esses barcos não precisam de tripulação fazendo peso na borda para ficarem aprumados. A quilha profunda de chumbo fundido (com mais de 40% do peso total do barco concentrado a 1,30 m de profundidade) atua como um pêndulo gigante que garante segurança absoluta contra capotamento.<br/>"
    "• <b>Buja Autovirante com Retranca (Club-footed Jib):</b> O pequeno clube de madeira sobre o convés de proa permite virar de bordo apenas mexendo no leme; a vela de proa desliza sobre o trilho transversal automaticamente, sem precisar caçar ou soltar escotas.",
    body_style
))

doc.build(story)
print("PDF Similares Classic Daysailer gerado com sucesso!")
