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/Comparativo_4_Saveiros_Bahia.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.5,
    leading=10.2,
    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=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 SAVEIROS TRADICIONAIS DA BAHIA", title_style))
story.append(Paragraph("<b>Modelo de Referência: Mini Saveiro de Vela de Içar 6,30 m vs. 3 Tipologias Tradicionais Baianas</b> | Aluno: Alberico de Carvalho Santiago | Brana / EEE", subtitle_style))
story.append(HRFlowable(width="100%", thickness=1.2, color=secondary_color, spaceAfter=4))

# Tabela Comparativa dos 4 Saveiros
table_data = [
    [
        Paragraph("Tipo de Saveiro / Modelo", table_header_style),
        Paragraph("Região Principal / 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("Desloc. Total<br/>(kg)", table_header_style),
        Paragraph("Armação Vélica<br/>(Aparelho)", table_header_style),
        Paragraph("Área Vélica<br/>(m²)", table_header_style),
        Paragraph("Distribuição do Velame<br/>(Cotas Principais)", table_header_style),
        Paragraph("Motor Diesel<br/>de Centro", table_header_style),
        Paragraph("Velocidade<br/>Cruzeiro", table_header_style),
        Paragraph("Missão Principal /<br/>Comportamento Náutico", table_header_style)
    ],
    # MODELO PRINCIPAL (SEU BARCO)
    [
        Paragraph("★ MINI SAVEIRO 6,30 m<br/>(Seu Barco de Passeio)", table_body_main_left),
        Paragraph("Baía de Todos-os-Santos<br/>(Salvador / Ilhas)", 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²", table_body_main),
        Paragraph("Içar: 16,5 m² (P=4,2 | E=4,5 | Ve=3,4)<br/>Buja no baucot: 6,0 m² (I=4,8 | J=3,8)", table_body_main),
        Paragraph("10 a 14 CV<br/>(Yanmar B10 / Agrale)", table_body_main),
        Paragraph("5,5 nós<br/>(~1,2 L/h)", table_body_main),
        Paragraph("Passeio e pescaria ágil. Divisão em 2 panos equilibra o leme. Encalha reto na areia.", table_body_main_left)
    ],
    # SIMILAR 1: SAVEIRO DE UMA VELA DE PENA
    [
        Paragraph("1. Saveiro de 1 Vela de Pena<br/>(Saveiro de Pesca / Raspa)", table_body_left),
        Paragraph("Recôncavo e Costa Sul<br/>(Valença / Taperoá)", table_body_style),
        Paragraph("6,30 m / 5,70 m<br/>(Sem baucot)", table_body_style),
        Paragraph("2,40 m", table_body_style),
        Paragraph("0,45 m<br/>(Fundo chato)", table_body_style),
        Paragraph("~1.800 kg<br/>(Lastro de pedras)", table_body_style),
        Paragraph("1 Vela de Pena Latina<br/>(Armação Latina Pura)", table_body_style),
        Paragraph("21,5 m²", table_body_style),
        Paragraph("Testa P: 7,80 m (na pena inclinada)<br/>Esteira E: 5,90 m | I e J não aplicam", table_body_style),
        Paragraph("10 a 12 CV<br/>(Yanmar B10)", table_body_style),
        Paragraph("5,5 nós<br/>(~1,2 L/h)", table_body_style),
        Paragraph("Pesca artesanal rápida. Uma só vela: manobra simples no bordo, sem tocar em escotas de proa.", table_body_left)
    ],
    # SIMILAR 2: SAVEIRO DE CARGA / SOMBREIRO
    [
        Paragraph("2. Saveiro Sombreiro de Carga<br/>(Saveiro de Vela de Içar)", table_body_left),
        Paragraph("Rio Paraguaçu / Maragojipe<br/>(Nazaré / Salvador)", table_body_style),
        Paragraph("11,00 m / 10,20 m<br/>(Grande porte)", table_body_style),
        Paragraph("3,80 m<br/>(Bojudo)", table_body_style),
        Paragraph("0,85 m<br/>(Fundo profundo)", table_body_style),
        Paragraph("~8.500 kg<br/>(Capacidade: 8 t carga)", table_body_style),
        Paragraph("Vela de Içar Maior<br/>(Áurica c/ tijupá na ré)", table_body_style),
        Paragraph("58,0 m²", table_body_style),
        Paragraph("Pena pesada de içar: 12,0 m<br/>Mastro grosso: 7,50 m | Esteira: 8,50 m", table_body_style),
        Paragraph("36 a 45 CV<br/>(MWM 3 cil / Yanmar)", table_body_style),
        Paragraph("6,2 nós<br/>(~4,0 L/h)", table_body_style),
        Paragraph("Cargueiro pesado do Recôncavo. Tijupá para pernoite da tripulação; transporte de telhas, fumo e farinha.", table_body_left)
    ],
    # SIMILAR 3: SAVEIRO DE DOIS MASTROS
    [
        Paragraph("3. Saveiro de 2 Mastros<br/>(Duas Velas de Pena)", table_body_left),
        Paragraph("Litoral Sul da Bahia<br/>(Camamu / Canavieiras)", table_body_style),
        Paragraph("8,50 m / 7,80 m<br/>(Médio porte)", table_body_style),
        Paragraph("2,85 m", table_body_style),
        Paragraph("0,65 m<br/>(Quilha rasa corrida)", table_body_style),
        Paragraph("~4.200 kg<br/>(Lastro pesado)", table_body_style),
        Paragraph("2 Velas de Pena Latinas<br/>(Mastro Grande + Trinquete)", table_body_style),
        Paragraph("31,5 m²", table_body_style),
        Paragraph("Vela Grande ré: 19,5 m² (P1 = 7,5 m)<br/>Trinquete proa: 12,0 m² (P2 = 5,6 m)", table_body_style),
        Paragraph("18 a 25 CV<br/>(Yanmar 2YM15)", table_body_style),
        Paragraph("6,0 nós<br/>(~2,2 L/h)", table_body_style),
        Paragraph("Pesca oceânica costeira. A divisão em 2 mastros dá segurança com vento forte e mantém o barco aprumado.", table_body_left)
    ]
]

t_comp = Table(
    table_data,
    colWidths=[1.45*inch, 1.05*inch, 0.85*inch, 0.65*inch, 0.75*inch, 0.8*inch, 1.1*inch, 0.65*inch, 1.35*inch, 0.95*inch, 0.7*inch, 1.6*inch]
)

t_comp.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), primary_color),
    ('BACKGROUND', (0,1), (-1,1), colors.HexColor("#FEF3C7")), # Destaque 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 das Diferenças
story.append(Paragraph("ANÁLISE COMPARATIVA: O QUE MUDA ENTRE AS 4 TIPOLOGIAS DE SAVEIROS BAIANOS?", section_heading))

analysis_text = (
    "• <b>Seu Projeto (Mini Saveiro de Vela de Içar 6,30 m):</b> É o modelo mais equilibrado para <b>passeio náutico e lazer esportivo</b>. Ao combinar a vela quadrangular de içar com a bujarrona projetada no baucot, o timoneiro ganha total controle sobre o leme (não há tendência violenta de arribar ou orçar). Tem cockpit espaçoso e calado baixo para praia.<br/>"
    "• <b>Comparado ao Saveiro de 1 Vela de Pena (6,30 m):</b> O de pena tem uma única vela triangular imensa envergada numa vara de 7,80 m. É maravilhoso para o pescador experiente porque não exige mexer em cabos de proa ao virar o bordo, mas exige mais força no braço do leme e não tem a flexibilidade de rizar a vela de proa em ventos fortes.<br/>"
    "• <b>Comparado ao Saveiro Sombreiro de Carga (11,00 m):</b> É a comparação do carro de passeio com a carreta de carga. O saveiro de 11 metros pesa mais de 8 toneladas, tem tijupá para pernoite e boca de quase 4 metros para carregar cerâmica e fumo entre o Recôncavo e Salvador.<br/>"
    "• <b>Comparado ao Saveiro de 2 Mastros (8,50 m):</b> Era a escolha dos mestres de Camamu e Canavieiras para pesca em mar aberto fora da baía. Dividir a velatura latina em dois mastros (grande + trinquete) rebaixa o centro vélico e permite navegar com mar formado sem adernar perigosamente."
)
story.append(Paragraph(analysis_text, body_style))

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