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_Area_Velica_Sombra_da_Lua.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
)

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,
    leading=8.5,
    textColor=colors.white,
    alignment=1
)

table_body_style = ParagraphStyle(
    'TableBody',
    parent=styles['Normal'],
    fontName='Helvetica',
    fontSize=6.8,
    leading=8.5,
    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.8,
    leading=8.5,
    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 PLANO VÉLICO: SEU MINI SAVEIRO vs. O HISTÓRICO 'SOMBRA DA LUA'", title_style))
story.append(Paragraph("<b>Mini Saveiro de Vela de Içar 6,30 m vs. O Ícone Centenário Tombado pelo IPHAN (12,50 m)</b> | Aluno: Alberico | Brana / EEE", subtitle_style))
story.append(HRFlowable(width="100%", thickness=1.2, color=secondary_color, spaceAfter=4))

# Introdução
story.append(Paragraph("1. O Ícone Máximo dos Saveiros da Bahia: 'Sombra da Lua'", section_heading))
story.append(Paragraph(
    "Você se referiu ao lendário <b>Saveiro 'Sombra da Lua'</b> (muitas vezes carinhosamente lembrado ou associado à noite/lua), construído na década de 1920 em Maragojipe e tombado em 2012 pelo <b>IPHAN como Patrimônio Cultural do Brasil</b>. "
    "Ele é o maior e mais famoso saveiro de vela de içar ainda em atividade na Baía de Todos-os-Santos. "
    "Abaixo confrontamos o plano vélico e as dimensões do gigante <i>Sombra da Lua</i> com o seu <i>Mini Saveiro de Passeio de 6,30 m</i>:",
    body_style
))

# Tabela Comparativa Completa
table_data = [
    [
        Paragraph("Embarcação / Modelo", table_header_style),
        Paragraph("Comprimento (LOA)<br/>(m)", table_header_style),
        Paragraph("Boca Moldada (B)<br/>(m)", table_header_style),
        Paragraph("Calado (T)<br/>(m)", table_header_style),
        Paragraph("Deslocamento<br/>(Peso Total)", table_header_style),
        Paragraph("Altura do Mastro<br/>(m)", table_header_style),
        Paragraph("Comprimento da Pena<br/>(Verga de Içar)", table_header_style),
        Paragraph("ÁREA VÉLICA TOTAL<br/>(m² de Lona)", table_header_style),
        Paragraph("Relação Área Vélica /<br/>Deslocamento (SA/D)", table_header_style),
        Paragraph("Tripulação Necessária<br/>para Velejar", table_header_style)
    ],
    # MODELO PRINCIPAL (SEU MINI SAVEIRO)
    [
        Paragraph("★ SEU MINI SAVEIRO 6,30 m<br/>(Projeto Alberico)", table_body_main_left),
        Paragraph("6,30 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/>(~1,85 t)", table_body_main),
        Paragraph("5,80 m<br/>(acima convés)", table_body_main),
        Paragraph("3,40 m (Carangueja)<br/>+ Baucot 2,30 m", table_body_main),
        Paragraph("<b>22,50 m²</b><br/>(Içar 16,5m² + Buja 6m²)", table_body_main),
        Paragraph("<b>18,2</b><br/>(Muito ágil e leve)", table_body_main),
        Paragraph("<b>1 a 2 pessoas</b><br/>(Velejada leve de passeio)", table_body_main_left)
    ],
    # SAVEIRO SOMBRA DA LUA
    [
        Paragraph("SAVEIRO 'SOMBRA DA LUA'<br/>(Tombado IPHAN - Maragojipe)", table_body_left),
        Paragraph("12,50 m<br/>(Quase o dobro!)", table_body_style),
        Paragraph("4,00 m<br/>(Bojudo pesado)", table_body_style),
        Paragraph("~1,00 m<br/>(Carregado)", table_body_style),
        Paragraph("~14.000 a 16.000 kg<br/>(14 a 16 toneladas!)", table_body_style),
        Paragraph("<b>~18,0 metros!</b><br/>(Tronco inteiriço)", table_body_style),
        Paragraph("<b>~15,0 metros</b><br/>(Madeira de lei curva)", table_body_style),
        Paragraph("<b>~135,0 m²</b><br/>(Uma das maiores velas do Brasil!)", table_body_style),
        Paragraph("<b>14,8</b><br/>(Força bruta de tração)", table_body_style),
        Paragraph("<b>4 a 6 marinheiros fortes</b><br/>(Içamento com moitões pesados)", table_body_left)
    ]
]

t_comp = Table(
    table_data,
    colWidths=[1.6*inch, 1.1*inch, 0.95*inch, 0.85*inch, 1.2*inch, 1.05*inch, 1.25*inch, 1.3*inch, 1.2*inch, 1.55*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.5),
    ('BOTTOMPADDING', (0,0), (-1,-1), 2.5),
]))
story.append(t_comp)
story.append(Spacer(1, 4))

# Conclusões da Comparação
story.append(Paragraph("2. A Física Comparativa: O 'Gigante Centenário' e o 'Mini Saveiro Ágil'", section_heading))
story.append(Paragraph(
    "• <b>Área Vélica Monumental do Sombra da Lua (~135 m²):</b> O Sombra da Lua carrega uma das maiores velas de içar do mundo tradicional. Seu mastro monumental tem cerca de <b>18 metros de altura</b> (equivalente a um prédio de 6 andares!) sem nenhum estai de aço, apoiado apenas no enfancamento e na quilha de madeira. A verga curva de içar mede cerca de 15 metros de pura madeira de lei flexível.<br/>"
    "• <b>Por que ele precisa de 135 m²?</b> Porque o Sombra da Lua pesa mais de <b>14 toneladas</b> e foi projetado para transportar até 20 a 30 toneladas de mercadorias no bojo contra as correntes do Rio Paraguaçu. Para mover essa massa gigantesca, a força aerodinâmica precisa ser descomunal, exigindo uma guarnição de 4 a 6 homens experientes trabalhando juntos no cabrestante e nas escotas.<br/>"
    "• <b>A Eficiência do seu Mini Saveiro (22,5 m²):</b> O seu barco de 6,30 m pesa apenas <b>1,85 tonelada</b>. Os seus <b>22,5 m²</b> geram uma relação área/deslocamento de <b>18,2</b> (superior à do Sombra da Lua!), o que significa que o seu barco é muito mais leve na água, anda com qualquer brisa fraca de verão e pode ser governado com tranquilidade por <b>uma única pessoa</b> com uma mão na cana do leme e a outra na escota!",
    body_style
))

doc.build(story)
print("PDF Comparativo Sombra da Lua gerado com sucesso!")
