@echo off
setlocal EnableDelayedExpansion
title Reparacion de Sinnek Client

:: ============================================================
::  SINNEK CLIENT - Script de reparacion
::  Cierra la app, desinstala, limpia residuos y reinstala
:: ============================================================

:: Colores y cabecera
color 60
cls
echo.
echo  =======================================================
echo    SINNEK CLIENT - Herramienta de reparacion
echo  =======================================================
echo.
echo  Este proceso reparara su instalacion de Sinnek Client.
echo  Por favor, no cierre esta ventana hasta que termine.
echo.
echo  -------------------------------------------------------
echo.

:: --- PASO 1: Cerrar la aplicacion si esta abierta ----------
echo  [1/5] Cerrando Sinnek Client si esta en ejecucion...
taskkill /F /IM "Sinnek-Client.exe" >nul 2>&1
timeout /t 2 /nobreak >nul
echo        OK
echo.

:: --- PASO 2: Desinstalar version actual --------------------
echo  [2/5] Desinstalando version actual...

:: Busca el desinstalador en las rutas habituales de electron-builder
set "UNINSTALLER="
set "SEARCH1=%APPDATA%\sinnek-client\Uninstall Sinnek-Client.exe"
set "SEARCH2=%LOCALAPPDATA%\Programs\Sinnek-Client\Uninstall Sinnek-Client.exe"
set "SEARCH4=%PROGRAMFILES(X86)%\Sinnek-Client\Uninstall Sinnek-Client.exe"
set "SEARCH3=%PROGRAMFILES%\Sinnek-Client\Uninstall Sinnek-Client.exe"

if exist "%SEARCH1%" set "UNINSTALLER=%SEARCH1%"
if exist "%SEARCH2%" set "UNINSTALLER=%SEARCH2%"
if exist "%SEARCH3%" set "UNINSTALLER=%SEARCH3%"
if exist "%SEARCH4%" set "UNINSTALLER=%SEARCH4%"

if defined UNINSTALLER (
    "%UNINSTALLER%" /S >nul 2>&1
    timeout /t 5 /nobreak >nul
    echo        OK
) else (
    echo        No se encontro desinstalador, continuando limpieza manual...
)
echo.

:: --- PASO 3: Limpiar carpetas residuales ------------------
echo  [3/5] Limpiando archivos residuales...

set "DIRS_TO_CLEAN=%LOCALAPPDATA%\sinnek-client"
set "DIRS_TO_CLEAN2=%LOCALAPPDATA%\Programs\sinnek-client"
set "DIRS_TO_CLEAN3=%APPDATA%\Sinnek-Client"
set "DIRS_TO_CLEAN4=%APPDATA%\sinnek-client"
set "DIRS_TO_CLEAN5=%LOCALAPPDATA%\sinnek-client-updater"

for %%D in (
    "%LOCALAPPDATA%\sinnek-client"
    "%LOCALAPPDATA%\Programs\Sinnek-Client"
    "%APPDATA%\Sinnek-Client"
    "%APPDATA%\sinnek-client"
    "%LOCALAPPDATA%\sinnek-client-updater"
) do (
    if exist %%D (
        rd /s /q %%D >nul 2>&1
    )
)

echo        OK
echo.

:: --- PASO 4: Descargar instalador limpio ------------------
echo  [4/5] Descargando la ultima version de Sinnek Client...
echo        ^(Esto puede tardar unos minutos segun su conexion^)
echo.

set "DOWNLOAD_URL=https://software.sinnek.com/download/Sinnek-Client.exe"
set "INSTALLER=%TEMP%\Sinnek-Client.exe"

:: Elimina descarga previa si existe
if exist "%INSTALLER%" del /f /q "%INSTALLER%" >nul 2>&1

:: Descarga con barra de progreso
echo  Descargando instalador...
bitsadmin /transfer "Sinnek Client Download" /priority FOREGROUND "%DOWNLOAD_URL%" "%INSTALLER%"

if not exist "%INSTALLER%" (
    echo.
    echo  ERROR: No se pudo descargar el instalador.
    echo  Compruebe su conexion a internet e intentelo de nuevo.
    echo  Si el problema persiste, contacte con soporte.
    echo.
    pause
    exit /b 1
)

echo        Descarga completada
echo.

:: --- PASO 5: Instalar --------------------------------------
echo  [5/5] Instalando Sinnek Client...
echo        Se abrira el instalador. No tiene que hacer nada, espera a que se abra la aplicación.
echo.

timeout /t 2 /nobreak >nul
start "" "%INSTALLER%"

echo  =======================================================
echo    Reparacion completada correctamente.
echo    Puede cerrar esta ventana.
echo  =======================================================
echo.
pause
exit /b 0
