@echo off
chcp 65001 >nul

:: ==========================================
:: ПРОВЕРКА ПРАВ АДМИНИСТРАТОРА
:: ==========================================
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo [!] Для выполнения требуются права администратора.
    echo [!] Автоматический запрос повышения прав...
    echo [!] Пожалуйста, нажмите "Да" в окне контроля учетных записей.
    powershell -WindowStyle Hidden -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
    exit /b
)

echo ==========================================
echo   Перезапуск служб ESM
echo ==========================================
echo.

echo [1/4] Остановка служб...
net stop esm-cm-00106108974992 >nul 2>&1
net stop esm-lm-controller >nul 2>&1
net stop esm-orchestrator >nul 2>&1
net stop epc-bridge >nul 2>&1

echo Ожидание полной остановки...
timeout /t 2 /nobreak >nul

echo.
echo [2/4] Запуск служб...
net start esm-cm-00106108974992 >nul 2>&1
net start esm-lm-controller >nul 2>&1
net start esm-orchestrator >nul 2>&1
net start epc-bridge >nul 2>&1

echo Ожидание запуска...
timeout /t 3 /nobreak >nul

echo.
echo [3/4] Проверка состояния служб...
set "FAIL=0"

sc query esm-cm-00106108974992 | find "RUNNING" >nul
if %errorlevel% neq 0 set "FAIL=1"

sc query esm-lm-controller | find "RUNNING" >nul
if %errorlevel% neq 0 set "FAIL=1"

sc query esm-orchestrator | find "RUNNING" >nul
if %errorlevel% neq 0 set "FAIL=1"

sc query epc-bridge | find "RUNNING" >nul
if %errorlevel% neq 0 set "FAIL=1"

echo.
echo ==========================================
if "%FAIL%"=="0" (
    echo   Службы перезапущены
    echo   Для продолжения работы нажмите любую кнопку
    echo ==========================================
    pause >nul
) else (
    echo   ОШИБКА: не удалось запустить одну или несколько служб
    echo   Для выхода нажмите любую кнопку
    echo ==========================================
    pause >nul
)