@echo off
setlocal

REM ===================================================================
REM updater.bat (compatible)
REM - Soporta 2 parámetros: %1 = ruta del ZIP, %2 = carpeta de instalación
REM - También soporta la versión antigua con 3 parámetros:
REM     %3 = ruta completa del exe (se envía por compatibilidad)
REM ===================================================================

REM Parámetros
set "ZIPFILE=%~1"
set "TARGETDIR=%~2"
set "EXEFILE=%~3"

REM Validar básicos
if "%ZIPFILE%"=="" (
    echo ERROR: Falta parametro: ZIPFile (1).
    echo Uso: updater.bat "C:\ruta\Localizacion.zip" "C:\Program Files\Localizacion" ["C:\...\localizzacion.exe"]
    pause
    exit /b 2
)
if "%TARGETDIR%"=="" (
    echo ERROR: Falta parametro: TargetDir (2).
    echo Uso: updater.bat "C:\ruta\Localizacion.zip" "C:\Program Files\Localizacion" ["C:\...\localizzacion.exe"]
    pause
    exit /b 3
)

REM Ubicacion del script PS1 (mismo directorio que este BAT)
set "SCRIPT_DIR=%~dp0"
set "SCRIPT=%SCRIPT_DIR%updater.ps1"

if not exist "%SCRIPT%" (
    echo ERROR: No se encuentra updater.ps1 en "%SCRIPT_DIR%"
    pause
    exit /b 4
)

REM Construir argumentos para PowerShell (escape correcto de comillas)
set "PS_ARGS=-NoProfile -ExecutionPolicy Bypass -File \"%SCRIPT%\" -ZipFile \"%ZIPFILE%\" -TargetDir \"%TARGETDIR%\" -ExeFile \"%EXEFILE%\""

REM Ejecutar PowerShell elevado (pide UAC si es necesario)
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
    "Start-Process -FilePath 'powershell' -ArgumentList '%PS_ARGS%' -Verb runAs"

REM Propagar código de salida (si se puede)
exit /b %errorlevel%
