@echo off
setlocal enabledelayedexpansion

echo Instalador cliente - Checador
echo Este archivo debe ejecutarse como Administrador.
echo.

net session >nul 2>&1
if not "%errorlevel%"=="0" (
    echo ERROR: ejecuta este instalador como Administrador.
    pause
    exit /b 1
)

set "ORIGEN=%~dp0"
if not exist "%ORIGEN%checador.exe" (
    if exist "%ORIGEN%app\checador.exe" (
        set "ORIGEN=%ORIGEN%app\"
    )
)
set "DESTINO_APP=C:\checador"
set "DESTINO_CONFIG=C:\ruta"
set "ARCHIVO_CONFIG=%DESTINO_CONFIG%\cadena.var"
set "SDK_ORIGEN=%ORIGEN%SDK_ZKTeco_x86"
set "SDK_ORIGEN_ALT=%ORIGEN%Standalone SDK-6.3.1.55\SDK\x86"
set "SDK_DESTINO=%windir%\SysWOW64"

if not exist "%ORIGEN%checador.exe" (
    echo ERROR: no se encontro checador.exe junto a este instalador.
    echo.
    echo Debes copiar o extraer la carpeta completa 'app' del paquete cliente
    echo y ejecutar 'instalar_cliente_admin.bat' desde esa carpeta.
    echo.
    echo Carpeta revisada:
    echo %ORIGEN%
    pause
    exit /b 1
)

echo Creando carpeta de configuracion...
if not exist "%DESTINO_CONFIG%" mkdir "%DESTINO_CONFIG%"

if exist "%ORIGEN%ConfiguracionCliente\cadena.var" (
    copy /Y "%ORIGEN%ConfiguracionCliente\cadena.var" "%ARCHIVO_CONFIG%" >nul
) else (
    if not exist "%ARCHIVO_CONFIG%" (
        >"%ARCHIVO_CONFIG%" echo 127.0.0.1
        >>"%ARCHIVO_CONFIG%" echo 3306
        >>"%ARCHIVO_CONFIG%" echo root
        >>"%ARCHIVO_CONFIG%" echo clone
    )
)

echo Copiando aplicacion a %DESTINO_APP%...
if not exist "%DESTINO_APP%" mkdir "%DESTINO_APP%"
if /I not "%ORIGEN%"=="%DESTINO_APP%\" (
    robocopy "%ORIGEN%" "%DESTINO_APP%" /E /XD ".git" "obj" "bin" /XF "*.pdb" "*.vshost.*" >nul
    if !ERRORLEVEL! GEQ 8 (
        echo ERROR: no se pudo copiar la aplicacion. Codigo robocopy: !ERRORLEVEL!
        pause
        exit /b 1
    )
)

if not exist "%DESTINO_APP%\checador.exe" (
    echo ERROR: la instalacion no dejo checador.exe en %DESTINO_APP%.
    echo Revisa que hayas ejecutado el instalador desde la carpeta app completa.
    pause
    exit /b 1
)

echo Copiando SDK ZKTeco...
if exist "%SDK_ORIGEN%\zkemkeeper.dll" (
    copy /Y "%SDK_ORIGEN%\*.dll" "%SDK_DESTINO%\" >nul
) else if exist "%SDK_ORIGEN_ALT%\zkemkeeper.dll" (
    copy /Y "%SDK_ORIGEN_ALT%\*.dll" "%SDK_DESTINO%\" >nul
) else (
    echo ADVERTENCIA: no se encontro el SDK ZKTeco junto al instalador.
)

if exist "%SDK_DESTINO%\zkemkeeper.dll" (
    echo Registrando zkemkeeper.dll...
    regsvr32 /s "%SDK_DESTINO%\zkemkeeper.dll"
)

echo.
echo Instalacion terminada.
echo Aplicacion: %DESTINO_APP%
echo Configuracion: %ARCHIVO_CONFIG%
echo.
pause
