@echo off

REM ================================================================
REM PLANTPLAN - Server (FastAPI/Uvicorn) verwalten
REM Verwendung: server.bat [start|stop|reload|status]
REM ================================================================

call "%~dp0setenv.bat"

if "%1"=="" goto usage

if /i "%1"=="start"  goto start
if /i "%1"=="stop"   goto stop
if /i "%1"=="reload" goto reload
if /i "%1"=="status" goto status
goto usage

:start
echo Starting PlantPlan Server (uvicorn) ...

REM Pruefen ob Server bereits laeuft
tasklist /FI "WINDOWTITLE eq PlantPlan-Server" 2>nul | find /i "cmd.exe" >nul
if not errorlevel 1 (
    echo Server laeuft bereits!
    goto end
)

REM Pruefen ob venv existiert
if not exist "%PROJECT%\.venv\Scripts\activate.bat" (
    echo FEHLER: .venv nicht gefunden! Bitte zuerst install_py.bat ausfuehren.
    goto end
)

start "PlantPlan-Server" cmd /k "cd /d "%PV_SERVER%" && "%PROJECT%\.venv\Scripts\activate.bat" && uvicorn main:app --reload --host %PV_SERVER_HOST% --port %PV_SERVER_PORT%"
echo Server gestartet auf %PV_SERVER_URL%
goto end

:stop
echo Stopping PlantPlan Server ...
taskkill /FI "WINDOWTITLE eq PlantPlan-Server" /T /F >nul 2>&1
if errorlevel 1 (
    echo Server war nicht gestartet.
) else (
    echo Server gestoppt.
)
goto end

:reload
echo Reloading PlantPlan Server ...
call :stop
timeout /t 2 /nobreak >nul
call :start
goto end

:status
tasklist /FI "WINDOWTITLE eq PlantPlan-Server" 2>nul | find /i "cmd.exe" >nul
if not errorlevel 1 (
    echo Server: LAEUFT
) else (
    echo Server: GESTOPPT
)
goto end

:usage
echo.
echo Verwendung: server.bat [start^|stop^|reload^|status]
echo.
echo   start   - Server starten (uvicorn mit --reload)
echo   stop    - Server stoppen
echo   reload  - Server neu starten
echo   status  - Pruefen ob Server laeuft
echo.

:end
