@echo off
setlocal EnableDelayedExpansion
chcp 65001 >nul
title Market Kasa Kurulumu
REM ============================================================================
REM  MARKET KASA — Kasa bilgisayarı kurulumu (Windows 10/11)
REM  Yönetici hakkı GEREKMEZ. İnternet gerekir (Node.js ve köprü dosyaları indirilir).
REM  Ne yapar:
REM    1) Taşınabilir Node.js indirir (yalnızca bu programa özel klasöre, sisteme kurulmaz)
REM    2) Donanım köprüsünü (yazıcı / çekmece / terazi / ÖKC) kurar ve Windows açılışına ekler
REM    3) Masaüstüne tam ekran "Market Kasa" kısayolu koyar
REM ============================================================================
set "SERVER=https://market.intercw.org"
set "NODE_VER=v22.12.0"
set "ROOT=%LOCALAPPDATA%\MarketKasa"
set "NODE_DIR=%ROOT%\node"
set "BRIDGE_DIR=%ROOT%\bridge"

echo.
echo  =====================================================
echo   MARKET KASA KURULUMU
echo   Sunucu: %SERVER%
echo   Klasör: %ROOT%
echo  =====================================================
echo.
set /p ANSWER=" Farklı bir sunucu adresi kullanacak mısınız? (yerel sunucu için ör. http://192.168.1.10:8010) Boş = bulut: "
if not "%ANSWER%"=="" set "SERVER=%ANSWER%"

mkdir "%ROOT%" 2>nul
cd /d "%ROOT%"

if not exist "%NODE_DIR%\node.exe" (
  echo [1/4] Node.js indiriliyor ...
  "%SystemRoot%\System32\curl.exe" -L -# -o node.zip "https://nodejs.org/dist/%NODE_VER%/node-%NODE_VER%-win-x64.zip" || goto :fail
  "%SystemRoot%\System32\tar.exe" -xf node.zip || goto :fail
  rmdir /s /q "%NODE_DIR%" 2>nul
  ren "node-%NODE_VER%-win-x64" node
  del node.zip
) else (
  echo [1/4] Node.js zaten kurulu, atlanıyor.
)
set "PATH=%NODE_DIR%;%PATH%"

echo [2/4] Donanım köprüsü indiriliyor ...
"%SystemRoot%\System32\curl.exe" -L -s -o kopru.zip "%SERVER%/indir/kopru" || goto :fail
if exist "%BRIDGE_DIR%\bridge.config.json" copy /y "%BRIDGE_DIR%\bridge.config.json" "%ROOT%\bridge.config.bak" >nul
rmdir /s /q "%BRIDGE_DIR%" 2>nul
"%SystemRoot%\System32\tar.exe" -xf kopru.zip || goto :fail
del kopru.zip
if exist "%ROOT%\bridge.config.bak" move /y "%ROOT%\bridge.config.bak" "%BRIDGE_DIR%\bridge.config.json" >nul

echo [3/4] Köprü bağımlılıkları kuruluyor (1-2 dk) ...
cd /d "%BRIDGE_DIR%"
call "%NODE_DIR%\npm.cmd" install --omit=dev --no-audit --no-fund --loglevel=error || goto :fail
if not exist bridge.config.json (
  echo {"port":7070,"printer":{"type":"simulator","width":42},"scale":{"type":"none"},"display":{"type":"none"},"drawer":{"via":"printer","pin":0},"okc":{"type":"none"}} > bridge.config.json
)

echo [4/4] Kısayollar ve otomatik başlatma ...
REM Köprü başlatıcı (gizli pencere)
> "%ROOT%\kopru-baslat.vbs" echo Set s = CreateObject("WScript.Shell"): s.CurrentDirectory = "%BRIDGE_DIR%": s.Run """%NODE_DIR%\node.exe"" src\index.js", 0, False
copy /y "%ROOT%\kopru-baslat.vbs" "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\MarketKopru.vbs" >nul

REM Tarayıcı: Edge yoksa Chrome
set "BROWSER=%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe"
if not exist "%BROWSER%" set "BROWSER=%ProgramFiles%\Microsoft\Edge\Application\msedge.exe"
if not exist "%BROWSER%" set "BROWSER=%ProgramFiles%\Google\Chrome\Application\chrome.exe"
if not exist "%BROWSER%" set "BROWSER=%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe"

powershell -NoProfile -ExecutionPolicy Bypass -Command ^
  "$d=[Environment]::GetFolderPath('Desktop'); $w=New-Object -ComObject WScript.Shell;" ^
  "$s=$w.CreateShortcut(\"$d\Market Kasa.lnk\"); $s.TargetPath='%BROWSER%'; $s.Arguments='--app=%SERVER%/pos/ --start-fullscreen --kiosk-printing --user-data-dir=\"%ROOT%\browser\"'; $s.IconLocation='%BROWSER%,0'; $s.Save();" ^
  "$s=$w.CreateShortcut(\"$d\Market Yonetim Paneli.lnk\"); $s.TargetPath='%BROWSER%'; $s.Arguments='%SERVER%/admin'; $s.Save();" ^
  "$s=$w.CreateShortcut(\"$d\Market Donanim Ayari.lnk\"); $s.TargetPath='notepad.exe'; $s.Arguments='\"%BRIDGE_DIR%\bridge.config.json\"'; $s.Save();"

REM Köprüyü şimdi başlat
wscript "%ROOT%\kopru-baslat.vbs"
timeout /t 3 >nul
"%SystemRoot%\System32\curl.exe" -s http://127.0.0.1:7070/health >nul 2>&1 && (set "BR=ÇALIŞIYOR") || (set "BR=başlatılamadı - bilgisayarı yeniden başlatın")

echo.
echo  =====================================================
echo   KURULUM TAMAMLANDI
echo   Masaüstü:  "Market Kasa"  (tam ekran kasa)
echo              "Market Yonetim Paneli"
echo              "Market Donanim Ayari"  (yazıcı / terazi portları)
echo   Köprü:     %BR%  (http://127.0.0.1:7070/health)
echo   Her açılışta köprü otomatik başlar.
echo  =====================================================
echo.
echo  Yazıcı/terazi bağlamak için "Market Donanim Ayari" dosyasını düzenleyin, örn:
echo   "printer": {"type":"escpos_network","address":"192.168.1.50:9100"}
echo   "scale":   {"type":"cas","port":"COM4","baud":9600}
echo  Değişiklikten sonra bilgisayarı yeniden başlatın.
echo.
pause
exit /b 0

:fail
echo.
echo  HATA: Kurulum tamamlanamadı. İnternet bağlantısını kontrol edip tekrar deneyin.
pause
exit /b 1
