@echo off
setlocal EnableExtensions
title jrvltsql O1 refetch and upload

set "JRVLT=C:\Users\oshim\jrvltsql"
set "JLTSQL_EXE=%JRVLT%\venv32\Scripts\jltsql.exe"
set "PY32=%JRVLT%\venv32\Scripts\python.exe"
set "SERVER=root@163.44.117.9"
set "REMOTE=/var/www/html/tools.kachiumaai.com"
set "FROM=20200101"
set "USE_PY=0"
set "SCRIPT_DIR=%~dp0"

if exist "%SCRIPT_DIR%jv-windows.local.env" (
  for /f "usebackq eol=# tokens=1,* delims==" %%a in ("%SCRIPT_DIR%jv-windows.local.env") do (
    if not "%%a"=="" set "%%a=%%b"
  )
)
if defined SERVER_SSH set "SERVER=%SERVER_SSH%"
if defined SERVER_PATH set "REMOTE=%SERVER_PATH%"

for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyyMMdd"') do set "TO=%%i"

echo ============================================================
echo  jrvltsql O1 refetch - upload keiba.db
echo  dir: %JRVLT%
echo  server: %SERVER%
echo ============================================================
echo.

if not exist "%JRVLT%" goto nodir

if exist "%JLTSQL_EXE%" goto haveexe
if exist "%PY32%" set "USE_PY=1" & goto havepy
goto nojltsql

:haveexe
echo [check] jltsql.exe: %JLTSQL_EXE%
goto runfetch

:havepy
echo [check] python -m jltsql: %PY32%
goto runfetch

:runfetch
echo.
echo [1/4] fetch O1 option=4  from %FROM% to %TO%
echo       May take hours. Keep JV-Link running. Do not close.
echo.

if "%USE_PY%"=="1" goto dopyspec
"%JLTSQL_EXE%" fetch --from %FROM% --to %TO% --spec O1 --option 4
if errorlevel 1 goto fetchrace
goto afterfetch

:dopyspec
"%PY32%" -m jltsql fetch --from %FROM% --to %TO% --spec O1 --option 4
if errorlevel 1 goto fetchracepy
goto afterfetch

:fetchrace
echo [WARN] O1 failed. Trying RACE spec...
"%JLTSQL_EXE%" fetch --from %FROM% --to %TO% --spec RACE --option 4
if errorlevel 1 goto fetchfail
goto afterfetch

:fetchracepy
echo [WARN] O1 failed. Trying RACE spec...
"%PY32%" -m jltsql fetch --from %FROM% --to %TO% --spec RACE --option 4
if errorlevel 1 goto fetchfail

:afterfetch
echo.
echo [2/4] check keiba.db
if exist "%PY32%" (
  "%PY32%" "%SCRIPT_DIR%check_keiba_o1_local.py" "%JRVLT%\data\keiba.db"
) else (
  py -3.11 "%SCRIPT_DIR%check_keiba_o1_local.py" "%JRVLT%\data\keiba.db"
)

echo.
echo [3/4] scp keiba.db (large, wait...)
scp "%JRVLT%\data\keiba.db" %SERVER%:/root/keiba.db
if errorlevel 1 goto scpfail

echo.
echo [4/4] import on server
ssh %SERVER% "cd %REMOTE% && ./scripts/backfill_odds_pipeline.sh /root/keiba.db"
if errorlevel 1 goto importwarn

echo.
echo [OK] done.
pause
exit /b 0

:nojltsql
echo [ERROR] jltsql not found.
echo Expected: %JLTSQL_EXE%
echo Or: %PY32%
echo.
echo First run: step00_check_jltsql.bat
pause
exit /b 1

:nodir
echo [ERROR] folder not found: %JRVLT%
pause
exit /b 1

:fetchfail
echo [ERROR] fetch failed. Check JV-LinkAgent in services.msc
pause
exit /b 1

:scpfail
echo [ERROR] scp failed.
pause
exit /b 1

:importwarn
echo [WARN] import warning.
pause
exit /b 2
