@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

SET SERVICE_NAME=ServidorBoletas
SET INSTALL_DIR=C:\ServidorBoletas
SET NSSM_EXE=%INSTALL_DIR%\nssm.exe
SET APP_EXE=%INSTALL_DIR%\app.exe
SET PORT=5001

:: Verifica si el puerto ya está en uso
FOR /F "tokens=5" %%P IN ('netstat -aon ^| findstr :%PORT% ^| findstr LISTENING') DO (
    echo ❌ El puerto %PORT% ya está en uso por el PID %%P
    echo Cancela la instalación o cambia el puerto en el código fuente.
    pause
    exit /b 1
)

:: Crear carpeta si no existe
IF NOT EXIST "%INSTALL_DIR%" (
    mkdir "%INSTALL_DIR%"
)

:: Copiar archivos
copy /Y "%~dp0app.exe" "%APP_EXE%"
copy /Y "%~dp0nssm.exe" "%NSSM_EXE%"

:: Instalar servicio con NSSM
"%NSSM_EXE%" install %SERVICE_NAME% "%APP_EXE%"
"%NSSM_EXE%" set %SERVICE_NAME% AppDirectory "%INSTALL_DIR%"
"%NSSM_EXE%" set %SERVICE_NAME% DisplayName "Servidor Flask Boletas"
"%NSSM_EXE%" set %SERVICE_NAME% Start SERVICE_AUTO_START

:: Agregar excepción al firewall
netsh advfirewall firewall add rule name="ServidorBoletasPuerto%PORT%" dir=in action=allow protocol=TCP localport=%PORT% profile=any

:: Iniciar el servicio
"%NSSM_EXE%" start %SERVICE_NAME%

echo ✅ Servicio instalado y escuchando en el puerto %PORT%
pause
ENDLOCAL
