import json
import os
import subprocess

scripts_dir = "/home/magdalena/.hermes/plugins/iarquiteto-naval-brana/skills/brana-rascunho-2d-interativo/scripts"
work_dir = "/home/magdalena/eee/alunos/antonio-manoel-costa"
os.chdir(work_dir)

# LOA = 6.30 m
# 1 quadrado = 315.0 mm = 0.315 m
# LOA_SQ = 6.30 / 0.315 = 20 quadrados
# Boca máxima = 2.45 m = 7.777 qd (meia-boca = 1.225 m = 3.889 qd)
# Espelho de popa = 1.50 m (meia-boca = 0.75 m = 2.381 qd)
# Pontal seção mestra = 0.95 m = 3.016 qd (z_quilha=0, z_borda=3.016)
# Pontal popa = 1.00 m = 3.175 qd (z_quilha=0.794, z_borda=3.175)
# Pontal proa = 1.18 m = 3.746 qd (z_quilha=3.746, z_borda=3.746)

# Nós das curvas em quadrados:
# planSheer (meia-boca da borda):
# x=0 (popa): y=2.381
# x=4: y=3.450
# x=8 (seção mestra): y=3.889
# x=13: y=3.250
# x=17: y=1.800
# x=20 (proa): y=0.000

# profSheer (altura da borda):
# x=0: z=3.175
# x=8: z=3.016
# x=15: z=3.300
# x=20: z=3.746

# profKeel (altura da quilha):
# x=0: z=0.794
# x=4: z=0.200
# x=8: z=0.000
# x=14: z=0.150
# x=17: z=1.100
# x=20: z=3.746

cmd_ajustar = [
    "python3", f"{scripts_dir}/ajustar.py",
    "--loa-sq", "20",
    "--projeto", "projeto.json",
    "--curva", "planSheer", "0,2.381", "4,3.450", "8,3.889", "13,3.250", "17,1.800", "20,0.0",
    "--curva", "profSheer", "0,3.175", "8,3.016", "15,3.300", "20,3.746",
    "--curva", "profKeel", "0,0.794", "4,0.200", "8,0.000", "14,0.150", "17,1.100", "20,3.746"
]

res = subprocess.run(cmd_ajustar, capture_output=True, text=True)
print("Ajustar stdout:", res.stdout)
print("Ajustar stderr:", res.stderr)

# Seção transversal mestra: Cm = 0.90 (fundo firme / trapezoidal suave)
pts_secao = [
    [0.0, 0.0],
    [1.85, 0.30],
    [2.85, 0.75],
    [3.45, 1.50],
    [3.75, 2.25],
    [3.889, 3.016]
]

cmd_secao = [
    "python3", f"{scripts_dir}/homografia.py",
    "--secao"
] + [f"{p[0]},{p[1]}" for p in pts_secao] + [
    "--projeto", "projeto.json"
]

res_secao = subprocess.run(cmd_secao, capture_output=True, text=True)
print("Secao stdout:", res_secao.stdout)
print("Secao stderr:", res_secao.stderr)

with open("projeto.json", "r", encoding="utf-8") as f:
    proj = json.load(f)

proj["casco"] = "redondo"
proj["nome"] = "Antônio Manoel Costa"
proj["titulo"] = "Saveiro Costeiro 6,30m"
proj["subtitulo"] = "Plano de Linhas Interativo (Rascunho 2D)"
proj["loa_m"] = 6.30
proj["loa_sq"] = 20
proj["balizas"] = 6
proj["mid_x"] = 8.0
proj["cheia"] = {
    "p": 2.21,
    "re": 0.95,
    "vante": 0.65
}
proj["registro"] = {
    "calibracao": "Croqui 3 vistas digitalizado a partir de desenho em papel milimetrado com proporções LOA 6,30m e BOA 2,45m (1 quadrado = 315,0 mm).",
    "notas": [
        "LOA de 6,30 m e BOA de 2,45 m compatíveis com o croqui original.",
        "Forma da seção mestra com fundo firme e bojo redondo (Cm = 0,90).",
        "Curvas alisadas sem inflexão garantindo continuidade e estabilidade hidrostática."
    ]
}

with open("projeto.json", "w", encoding="utf-8") as f:
    json.dump(proj, f, indent=2, ensure_ascii=False)

print("projeto.json gravado com sucesso.")

html_out = "Plano-de-Linhas-Redondo-Antonio-Manoel-Costa.html"
cmd_montar = ["python3", f"{scripts_dir}/montar.py", "projeto.json", html_out]
res_montar = subprocess.run(cmd_montar, capture_output=True, text=True)
print("Montar stdout:", res_montar.stdout)
print("Montar stderr:", res_montar.stderr)

cmd_verificar = ["node", f"{scripts_dir}/verificar.js", "--resumo", html_out]
res_verificar = subprocess.run(cmd_verificar, capture_output=True, text=True)
print("Verificar stdout:", res_verificar.stdout)
print("Verificar stderr:", res_verificar.stderr)
