#!/bin/bash
# =============================================================================
# INSTALADOR - Tablero Potenciales Migraciones BF
# Ubuntu Server - Ejecutar como root o con sudo
# =============================================================================

set -e

INSTALL_DIR="/var/www/html/potenciales"
SERVICE_NAME="tablero-potenciales"
EXCEL_PATH="${INSTALL_DIR}/Potenciales.xlsx"
PORT=8765

echo "============================================================"
echo " INSTALADOR - Tablero Potenciales Migraciones BF"
echo "============================================================"

# 1. Crear directorio de instalacion si no existe
echo "[1/5] Creando directorio de instalacion: ${INSTALL_DIR}"
mkdir -p "${INSTALL_DIR}"

# 2. Verificar que Python3 este instalado
echo "[2/5] Verificando Python3..."
if ! command -v python3 &> /dev/null; then
    echo "  Python3 no encontrado. Instalando..."
    apt-get update -y
    apt-get install -y python3
else
    echo "  Python3 encontrado: $(python3 --version)"
fi

# 3. Copiar archivos del proyecto al directorio de instalacion
echo "[3/5] Copiando archivos del proyecto..."
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

cp "${SCRIPT_DIR}/server.py"                               "${INSTALL_DIR}/"
cp "${SCRIPT_DIR}/Tablero_Potenciales_Migraciones_BF.html" "${INSTALL_DIR}/"

# Copiar el Excel si esta junto al instalador (primera instalacion)
if [ -f "${SCRIPT_DIR}/Potenciales.xlsx" ]; then
    cp "${SCRIPT_DIR}/Potenciales.xlsx" "${INSTALL_DIR}/"
    echo "  Potenciales.xlsx copiado."
else
    echo "  AVISO: Potenciales.xlsx no encontrado junto al instalador."
    echo "         Debera subirlo manualmente a: ${EXCEL_PATH}"
fi

# Dar permisos correctos
chmod -R 755 "${INSTALL_DIR}"
chmod 664 "${EXCEL_PATH}" 2>/dev/null || true

# 4. Crear servicio systemd
echo "[4/5] Creando servicio systemd: ${SERVICE_NAME}"

cat > "/etc/systemd/system/${SERVICE_NAME}.service" << EOF
[Unit]
Description=Tablero Potenciales Migraciones BF
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=${INSTALL_DIR}
ExecStart=/usr/bin/python3 ${INSTALL_DIR}/server.py
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF

# 5. Habilitar e iniciar el servicio
echo "[5/5] Habilitando e iniciando el servicio..."
systemctl daemon-reload
systemctl enable "${SERVICE_NAME}"
systemctl restart "${SERVICE_NAME}"

sleep 2

# Verificar estado
if systemctl is-active --quiet "${SERVICE_NAME}"; then
    echo ""
    echo "============================================================"
    echo " INSTALACION EXITOSA"
    echo "============================================================"
    echo " Tablero disponible en:"
    echo "   http://$(hostname -I | awk '{print $1}'):${PORT}/"
    echo ""
    echo " Ruta del Excel (para actualizarlo via WinSCP):"
    echo "   ${EXCEL_PATH}"
    echo ""
    echo " Comandos utiles:"
    echo "   Ver estado  : sudo systemctl status ${SERVICE_NAME}"
    echo "   Detener     : sudo systemctl stop ${SERVICE_NAME}"
    echo "   Reiniciar   : sudo systemctl restart ${SERVICE_NAME}"
    echo "   Ver logs    : sudo journalctl -u ${SERVICE_NAME} -f"
    echo "============================================================"
else
    echo ""
    echo "ERROR: El servicio no pudo iniciarse. Revise los logs:"
    echo "  sudo journalctl -u ${SERVICE_NAME} -n 50"
    exit 1
fi
