#!/usr/bin/env python3
"""
Deploy Bascuñán v5 — notificaciones email.
Subir este archivo al servidor y ejecutar: python3 deploy_v5.py
"""
import sys, os, subprocess, shutil, signal

BASE = "/home/embalado"
VENV = f"{BASE}/virtualenv/limi-stock/3.13/bin/python3"

files = [
    ("bascunan.php",              f"{BASE}/bascunan.embalados.cl/bascunan.php"),
    ("bascunan_api.py",           f"{BASE}/limi-stock/bascunan_api.py"),
    ("bascunan_db_migrate_v5.py", f"{BASE}/bascunan_db_migrate_v5.py"),
]

print("=== Deploy Bascuñán v5 ===")
for src, dst in files:
    if os.path.exists(src):
        shutil.copy2(src, dst)
        print(f"  ✓ {src} → {dst}")
    else:
        print(f"  ✗ {src} no encontrado (saltar)")

# Migración v5
db = f"{BASE}/bascunan.db"
migrate = f"{BASE}/bascunan_db_migrate_v5.py"
if os.path.exists(migrate) and os.path.exists(db):
    print("\n--- Migración v5 ---")
    result = subprocess.run([VENV, migrate, db], capture_output=True, text=True)
    print(result.stdout)
    if result.stderr: print("STDERR:", result.stderr)

# Configurar contraseña SMTP en archivo de config (no en .bashrc — lswsgi no lo lee)
import getpass
smtp_pass = getpass.getpass("\nContraseña de web@embalados.cl (SMTP): ")
secret = f"{BASE}/bascunan_secret.cfg"
with open(secret, "w") as f:
    f.write(f"SMTP_PASS={smtp_pass}\n")
os.chmod(secret, 0o600)
print(f"  ✓ {secret} escrito (permisos 600)")

# Reiniciar LiteSpeed WSGI
result2 = subprocess.run(
    "ps aux | grep lswsgi | grep -v grep | awk '{print $2}'",
    shell=True, capture_output=True, text=True
)
pids = [p for p in result2.stdout.strip().split() if p]
if pids:
    for pid in pids:
        try: os.kill(int(pid), signal.SIGTERM)
        except: pass
    print(f"\n✓ lswsgi reiniciado (PIDs: {', '.join(pids)})")
else:
    print("\n! No se encontraron procesos lswsgi")

print("\n=== Deploy v5 completo ===")
print("Próximo paso: en Admin > Usuarios, editar cada bodeguero y agregar su email personal.")
