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_Mini_Saveiro_6_30m.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=6
)

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.6,
    leading=10.2,
    textColor=dark_neutral,
    spaceAfter=2
)

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_main = ParagraphStyle(
    'TableBodyMain',
    parent=styles['Normal'],
    fontName='Helvetica-Bold',
    fontSize=6.5,
    leading=8.2,
    textColor=colors.HexColor("#0F2B48"),
    alignment=1
)

table_body_main_left = ParagraphStyle(
    'TableBodyMainLeft',
    parent=table_body_main,
    alignment=0
)

story = []

# Cabeçalho
story.append(Paragraph("ESTUDO COMPARATIVO DE EMBARCAÇÕES SIMILARES — BARCO DE PASSEIO E VELEIRO TRADICIONAL", title_style))
story.append(Paragraph("<b>Modelo Central de Referência: Mini Saveiro de Vela de Içar 6,30 m (Gaff Sloop / Cutter)</b> | Aluno: Alberico de Carvalho Santiago | Brana / EEE", subtitle_style))
story.append(HRFlowable(width="100%", thickness=1.2, color=secondary_color, spaceAfter=4))

# Tabela Completa em Modo Paisagem
table_data = [
    [
        Paragraph("Embarcação / Modelo", table_header_style),
        Paragraph("Origem / Tradição", table_header_style),
        Paragraph("LOA / LWL<br/>(m)", table_header_style),
        Paragraph("Boca (B)<br/>(m)", table_header_style),
        Paragraph("Calado (T)<br/>(m)", table_header_style),
        Paragraph("Deslocamento<br/>(kg)", table_header_style),
        Paragraph("Armação Vélica<br/>(Tipo)", table_header_style),
        Paragraph("Área Vélica<br/>(m²)", table_header_style),
        Paragraph("Cotas do Plano<br/>Vélico (m)", table_header_style),
        Paragraph("Motorização<br/>Auxiliar", table_header_style),
        Paragraph("Velocidade<br/>Cruzeiro", table_header_style),
        Paragraph("Comportamento Náutico /<br/>Missão Principal", table_header_style)
    ],
    # MODELO PRINCIPAL: MINI SAVEIRO DE VELA DE IÇAR (ALBERICO)
    [
        Paragraph("★ MINI SAVEIRO 6,30 m<br/>(Projeto Alberico)", table_body_main_left),
        Paragraph("Bahia, Brasil<br/>(Baía de Todos-os-Santos)", table_body_main),
        Paragraph("6,30 m / 5,60 m<br/>(7,80 m c/ baucot)", table_body_main),
        Paragraph("2,40 m", table_body_main),
        Paragraph("0,45 m<br/>(Fundo chato)", table_body_main),
        Paragraph("~1.850 kg<br/>(Lastro interno)", table_body_main),
        Paragraph("Vela de Içar + Buja<br/>(Gaff Sloop/Cutter)", table_body_main),
        Paragraph("22,5 m²<br/>(16,5m² + 6,0m²)", table_body_main),
        Paragraph("P=4,20 | E=4,50<br/>Ve=3,40 | I=4,80 | J=3,80", table_body_main),
        Paragraph("Diesel 10–14 CV<br/>(Yanmar B10)", table_body_main),
        Paragraph("5,5 nós<br/>(~1,2 L/h)", table_body_main),
        Paragraph("Passeio e pescaria abrigada. Encalha reto na areia; buja no baucot equilibra o leme.", table_body_main_left)
    ],
    # SIMILAR 1: CORNISH SHRIMPER 19
    [
        Paragraph("Cornish Shrimper 19", table_body_left),
        Paragraph("Reino Unido<br/>(Cornwall)", table_body_style),
        Paragraph("5,87 m / 5,33 m<br/>(6,90 m c/ gurupés)", table_body_style),
        Paragraph("2,19 m", table_body_style),
        Paragraph("0,46 m (bolina levant.)<br/>1,22 m (bolina arriada)", table_body_style),
        Paragraph("1.066 kg<br/>(318 kg lastro)", table_body_style),
        Paragraph("Gaffhead Sloop<br/>(Carangueja + Buja)", table_body_style),
        Paragraph("18,0 m²<br/>(13,5m² + 4,5m²)", table_body_style),
        Paragraph("P=3,95 | E=3,80<br/>Ve=3,20 | I=4,60 | J=3,15", table_body_style),
        Paragraph("Diesel 9 HP (Yanmar)<br/>ou Popa 6 HP", table_body_style),
        Paragraph("5,2 nós<br/>(~1,0 L/h)", table_body_style),
        Paragraph("Day-cruiser tradicional mais vendido da Inglaterra. Excelente contravento com bolina.", table_body_left)
    ],
    # SIMILAR 2: CHARACTER BOATS COASTAL WHAMMEL 17
    [
        Paragraph("Coastal Whammel 17", table_body_left),
        Paragraph("Inglaterra<br/>(Lancashire)", table_body_style),
        Paragraph("5,47 m / 4,72 m<br/>(6,47 m c/ gurupés)", table_body_style),
        Paragraph("2,05 m", table_body_style),
        Paragraph("0,45 m<br/>(Quilha longa rasa)", table_body_style),
        Paragraph("850 kg<br/>(Lastro fixo)", table_body_style),
        Paragraph("Gaff Cutter c/ buja<br/>e mezena opcional", table_body_style),
        Paragraph("15,5 m²", table_body_style),
        Paragraph("P=3,60 | E=3,40<br/>Ve=2,80 | I=4,20 | J=2,80", table_body_style),
        Paragraph("Popa 4 a 6 HP<br/>ou Diesel 10 HP", table_body_style),
        Paragraph("4,8 nós", table_body_style),
        Paragraph("Inspirado nos barcos de pesca de camarão ingleses. Passeio familiar calmo e seguro.", table_body_left)
    ],
    # SIMILAR 3: CAPE COD CATBOAT (MARSHALL 18 / 22)
    [
        Paragraph("Cape Cod Catboat 22<br/>(Marshall 22)", table_body_left),
        Paragraph("EUA<br/>(Nova Inglaterra)", table_body_style),
        Paragraph("6,50 m / 6,10 m<br/>(Sem gurupés)", table_body_style),
        Paragraph("3,10 m<br/>(Super largo)", table_body_style),
        Paragraph("0,60 m (bolina levant.)<br/>1,55 m (bolina arriada)", table_body_style),
        Paragraph("2.560 kg<br/>(Lastro chumbo)", table_body_style),
        Paragraph("Cat-rig Áurica<br/>(1 só vela sem buja)", table_body_style),
        Paragraph("36,0 m²<br/>(1 só vela grande)", table_body_style),
        Paragraph("P=4,80 | E=6,80<br/>Ve=4,20 | I= — | J= —", table_body_style),
        Paragraph("Diesel 15–20 CV<br/>(Yanmar 2YM15)", table_body_style),
        Paragraph("5,6 nós", table_body_style),
        Paragraph("Boca gigante para estabilidade estática. Sem buja (I e J não aplicam). Grande cabine.", table_body_left)
    ],
    # SIMILAR 4: LLAÜT MALLORQUÍN 25
    [
        Paragraph("Llaüt Tradicional 25<br/>(Ferrer Rosselló)", table_body_left),
        Paragraph("Espanha<br/>(Maiorca / Baleares)", table_body_style),
        Paragraph("6,36 m / 5,80 m<br/>(Double-ender)", table_body_style),
        Paragraph("2,42 m", table_body_style),
        Paragraph("0,65 m<br/>(Quilha corrida)", table_body_style),
        Paragraph("2.200 kg<br/>(Quilha pesada)", table_body_style),
        Paragraph("Vela Latina Pura<br/>(Pena inclinada)", table_body_style),
        Paragraph("24,0 m²", table_body_style),
        Paragraph("P=8,20 | E=6,10<br/>Ve= — | I= — | J= —", table_body_style),
        Paragraph("Diesel 15–25 CV<br/>(Solé / Yanmar)", table_body_style),
        Paragraph("5,8 nós", table_body_style),
        Paragraph("Passeio e pesca costeira no Mediterrâneo. Popa fina e quilha contínua profunda.", table_body_left)
    ]
]

t_comp = Table(
    table_data,
    colWidths=[1.35*inch, 1.0*inch, 0.85*inch, 0.7*inch, 0.85*inch, 0.75*inch, 1.05*inch, 0.75*inch, 1.15*inch, 0.95*inch, 0.75*inch, 1.55*inch]
)

t_comp.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), primary_color),
    ('BACKGROUND', (0,1), (-1,1), colors.HexColor("#FEF3C7")), # Destaque amarelo suave para o Projeto Alberico
    ('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),
    ('BOTTOMPADDING', (0,0), (-1,-1), 2),
]))
story.append(t_comp)
story.append(Spacer(1, 4))

# Análise Crítica dos Resultados
story.append(Paragraph("ANÁLISE COMPARATIVA E LIÇÕES PARA O SEU BARCO DE PASSEIO DE 6,30 M", section_heading))

analysis_text = (
    "• <b>Por que o Mini Saveiro de Vela de Içar é perfeito para passeio?</b> Diferente do saveiro de uma vela de pena (que tem apenas uma vela grande), a armação de <b>vela de içar com carangueja + bujarrona no baucot</b> divide o velame em dois panos. A buja na proa equilibra o centro vélico (CLR vs. CE), aliviando o leme na mão do timoneiro e tornando a velejada de recreio muito mais suave e descansada.<br/>"
    "• <b>O 'Gêmeo Internacional' (Cornish Shrimper 19):</b> O famoso <i>Cornish Shrimper</i> da Inglaterra (mais de 1.000 unidades construídas) utiliza exatamente a mesma filosofia da sua prancha: casco de cerca de 6 metros, gurupés na proa, vela áurica quadrangular com carangueja e bujarrona. Isso prova que o seu barco tem apelo e eficiência consagrados mundialmente para passeio e day-sailing.<br/>"
    "• <b>A Vantagem Baiana do Fundo Chato:</b> Enquanto o Shrimper e o Catboat dependem de caixas de bolina retrátil no meio do cockpit (que tomam espaço e podem vazar), o <b>Mini Saveiro Baiano de 6,30 m</b> tem o piso 100% livre e plano, podendo encalhar em pé em qualquer praia de Itaparica ou banco de areia sem tombar."
)
story.append(Paragraph(analysis_text, body_style))

doc.build(story)
print("PDF Estudo Similares Mini Saveiro gerado com sucesso!")
