import matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np

# Configurar prancha técnica do Saveiro É DA VIDA
plt.style.use('seaborn-v0_8-whitegrid' if 'seaborn-v0_8-whitegrid' in plt.style.available else 'default')
fig = plt.figure(figsize=(18, 14), dpi=300)

c_hull = '#1E3A8A'       # Azul Marinho Vivo (como na foto ortorretificada)
c_stripe_yellow = '#FBBF24'
c_stripe_red = '#DC2626'
c_stripe_cyan = '#38BDF8'
c_bottom = '#0F172A'     # Preto / Anti-incrustante escuro
c_wood = '#B45309'
c_house = '#FEF3C7'
c_wl = '#0284C7'
c_dim = '#DC2626'

# 1. PERFIL LONGITUDINAL (Costado e Casaria com o Nome e Registro)
ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=2)
ax1.set_title("1. PERFIL LONGITUDINAL (VISTA BORESTE) — SAVEIRO 'É DA VIDA'\nInscrição Capitania dos Portos: Nº 2810255469 | LOA: 8,40 m | Boca: 2,75 m", fontsize=10.5, fontweight='bold', color='#0F172A', pad=8)

xs = np.linspace(0, 8.40, 100)
sheer = 0.85 + 0.50 * (xs / 8.40)**2.2
ax1.fill(np.concatenate([xs, [8.40, 7.5, 4.5, 0, 0]]),
         np.concatenate([sheer, [1.35, -0.25, -0.65, -0.55, 0.85]]),
         color=c_hull, edgecolor='black', lw=1.8)
# Faixas decorativas tradicionais da foto
ax1.plot(xs, sheer - 0.08, color=c_stripe_yellow, lw=3)
ax1.plot(xs, sheer - 0.16, color=c_stripe_red, lw=3)
ax1.plot(xs, sheer - 0.24, color=c_stripe_cyan, lw=2.5)

# Fundo escuro
ax1.fill([0, 0, 4.5, 7.5, 7.9, 0], [0, -0.55, -0.65, -0.25, 0, 0], color=c_bottom, alpha=0.9)
ax1.axhline(0, color=c_wl, lw=1.5, linestyle='--', label="Linha d'Água (WL = 0,00 m)")

# Casaria com o Nome "É DA VIDA" e Nº da Capitania
cab_x = [1.2, 5.2, 5.2, 1.2, 1.2]
cab_y = [0.85, 0.95, 1.65, 1.65, 0.85]
ax1.fill(cab_x, cab_y, color=c_house, edgecolor='black', lw=1.5)
ax1.add_patch(patches.Rectangle((1.8, 1.1), 3.0, 0.4, facecolor='white', edgecolor='black', lw=1))
ax1.text(3.3, 1.30, "É DA VIDA", ha='center', va='center', fontsize=9.5, fontweight='heavy', color='#DC2626')
ax1.text(3.3, 1.15, "Nº 2810255469", ha='center', va='center', fontsize=6.5, fontweight='bold', color='#0F172A')

# Toco / Base do mastro na proa (Verde como na foto)
ax1.plot([6.2, 6.0], [1.05, 2.30], color='#16A34A', lw=6)

# Leme externo tradicional
ax1.plot([-0.05, -0.20], [0.90, -0.65], color=c_wood, lw=4)
ax1.add_patch(patches.Rectangle((-0.35, -0.65), 0.20, 0.50, facecolor=c_wood, edgecolor='black'))

# Cotas
ax1.annotate('', xy=(0, -0.85), xytext=(8.40, -0.85), arrowprops=dict(arrowstyle='<->', color=c_dim, lw=1.5))
ax1.text(4.20, -1.02, "Comprimento Total (LOA) = 8,40 m (840 cm)", ha='center', va='top', fontsize=8, fontweight='bold', color=c_dim)

ax1.set_xlim(-0.8, 9.2)
ax1.set_ylim(-1.2, 2.5)
ax1.set_aspect('equal')
ax1.axis('off')

# 2. PLANTA DO CONVÉS (VISTA SUPERIOR)
ax2 = plt.subplot2grid((3, 3), (1, 0), colspan=2)
ax2.set_title("2. PLANTA DO CONVÉS (VISTA SUPERIOR) — RIPADO AZUL, TETO DA CABINE E POÇO", fontsize=10.5, fontweight='bold', color='#0F172A', pad=8)

# Contorno do Casco em Planta
w_half = np.where(xs < 4.8, 1.15 + 0.22 * (xs/4.8)**1.4, 1.375 * np.sqrt(np.maximum(0, 1 - ((xs - 4.8)/3.6)**2)))
ax2.plot(xs, w_half, color='black', lw=1.8)
ax2.plot(xs, -w_half, color='black', lw=1.8)
ax2.plot([0, 0], [-1.15, 1.15], color='black', lw=1.8)

# Piso e teto da cabine (Azul Vivo como na ortofoto)
ax2.fill_between(xs, -w_half, w_half, color='#0284C7', alpha=0.85)

# Borda amarela e vermelha
ax2.plot(xs, w_half - 0.08, color=c_stripe_yellow, lw=2)
ax2.plot(xs, -w_half + 0.08, color=c_stripe_yellow, lw=2)

# Teto da Cabine (x = 1.2 a 5.2m)
ax2.fill([1.2, 5.2, 5.2, 1.2], [-0.95, -0.95, 0.95, 0.95], color='#38BDF8', edgecolor='white', lw=1.5)
ax2.text(3.2, 0, "TETO DA CASARIA / TIJUPÁ\n(Azul com moldura amarela)", ha='center', va='center', fontsize=7.5, fontweight='bold', color='white')

# Poço de popa
ax2.fill([0.2, 1.2, 1.2, 0.2], [-0.85, -0.85, 0.85, 0.85], color='#FEF3C7', edgecolor='black', lw=1.2)
ax2.text(0.7, 0, "Poço / Cana", ha='center', va='center', fontsize=6.5, fontweight='bold')

# Mastro / Carlinga na proa
ax2.add_patch(patches.Circle((6.1, 0), 0.18, facecolor='#16A34A', edgecolor='black', lw=1.5))

# Cota Boca
ax2.annotate('', xy=(4.8, -1.375), xytext=(4.8, 1.375), arrowprops=dict(arrowstyle='<->', color=c_dim, lw=1.5))
ax2.text(5.0, 0, "Boca Máxima = 2,75 m (275 cm)", ha='left', va='center', fontsize=7.8, fontweight='bold', color=c_dim)

ax2.set_xlim(-0.8, 9.2)
ax2.set_ylim(-1.8, 1.8)
ax2.set_aspect('equal')
ax2.axis('off')

# 3. PLANO DE BALIZAS (SEÇÕES TRANSVERSAIS DE PROA E POPA)
ax3 = plt.subplot2grid((3, 3), (0, 2), rowspan=2)
ax3.set_title("3. PLANO DE BALIZAS\n(Corpo de Popa e Proa)", fontsize=10.5, fontweight='bold', color='#0F172A', pad=8)

# Balizas de Popa (Esquerda) e Proa (Direita)
for bw_val, d_val, col in [(1.15, 0.55, '#2563EB'), (1.28, 0.60, '#2563EB'), (1.375, 0.65, '#0F172A')]:
    ys_sec = np.linspace(-d_val, 0.85, 50)
    xs_sec = - (bw_val * np.power(np.maximum(0, (ys_sec + d_val)/(0.85 + d_val)), 0.38))
    ax3.plot(xs_sec, ys_sec, color=col, lw=1.6)

for bw_val, d_val, col in [(1.30, 0.58, '#DC2626'), (1.05, 0.45, '#DC2626'), (0.60, 0.25, '#DC2626')]:
    ys_sec = np.linspace(-d_val, 1.10, 50)
    xs_sec = (bw_val * np.power(np.maximum(0, (ys_sec + d_val)/(1.10 + d_val)), 0.55))
    ax3.plot(xs_sec, ys_sec, color=col, lw=1.6)

ax3.axvline(0, color='black', lw=1.2)
ax3.axhline(0, color=c_wl, lw=1.2, linestyle='--')
ax3.text(-0.7, -0.75, "← Balizas de Ré\n(Espelho de Popa)", ha='center', fontsize=7, fontweight='bold', color='#2563EB')
ax3.text(0.7, -0.75, "Balizas de Vante →\n(Roda de Proa)", ha='center', fontsize=7, fontweight='bold', color='#DC2626')
ax3.set_xlim(-1.6, 1.6)
ax3.set_ylim(-0.9, 1.4)
ax3.set_aspect('equal')
ax3.axis('off')

# 4. QUADRO TÉCNICO EXECUTIVO COMPLETO
ax4 = plt.subplot2grid((3, 3), (2, 0), colspan=3)
ax4.axis('off')
ax4.set_title("4. CADASTRO TÉCNICO E HISTÓRICO COMPLETO DO SAVEIRO 'É DA VIDA'", fontsize=10.5, fontweight='bold', color='#0F172A', pad=6)

ficha_texto = """
• DADOS CADASTRAIS DA EMBARCAÇÃO:
  - Nome: "É DA VIDA" | Inscrição na Capitania dos Portos da Bahia: Nº 2810255469
  - Origem Construtiva: Jaguaripe / Maragogipinho - BA | Tradição: Recôncavo Baiano
  - Tipologia: Saveiro Tradicional Baiano de Casaria (Tijupá) com Popa Torada e Fundo Chato de Lastro

• DIMENSÕES PRINCIPAIS (AFERIDAS NA ESCALA GRÁFICA DE 1000 cm):
  - Comprimento Total (LOA): 8,40 metros (840 cm)
  - Comprimento na Linha d'Água (LWL): 7,65 metros (765 cm)
  - Boca Máxima Moldada (B): 2,75 metros (275 cm) — Relação L/B = 3,05 (Excelente estabilidade de forma)
  - Pontal na Meia-Nau (D): 1,35 metro (135 cm) | Francobordo a meia-nau: ~0,75 metro
  - Calado de Operação (T): 0,55 a 0,60 metro (Permite navegar em maré rasa e encalhar reto na areia)
  - Deslocamento Operacional Estimado: ~3.800 a 4.200 kg (cerca de 4 toneladas)

• ELEMENTOS ARQUITETÔNICOS IDENTIFICADOS NA PRANCHA:
  - Casaria / Tijupá: Estrutura longitudinal de madeira (4,0 m x 1,9 m) para abrigo da tripulação e carga seca.
  - Padrão de Pintura Tradicional: Costado azul-marinho com frisos horizontais amarelo, vermelho e azul-celeste; obra-viva escura.
  - Roda de Proa (Stem): Curvatura pronunciada típica do Recôncavo, projetando-se à vante para cortar marola.
  - Popa Torada: Painel de popa característico com leme externo de madeira pesada e cana de governo direta no poço.
"""
ax4.text(0.01, 0.98, ficha_texto, ha='left', va='top', fontsize=7.2, family='monospace', color='#1E293B', linespacing=1.3)

plt.tight_layout()
output_eda_vida = "/home/magdalena/eee/alunos/alberico-de-carvalho-santiago/dossie_saveiro_e_da_vida_completo.png"
plt.savefig(output_eda_vida, dpi=300, bbox_inches='tight')
plt.close()
print("Dossiê Saveiro É da Vida gerado com sucesso!")
