@echo off
setlocal enabledelayedexpansion

:: Verificare permisiuni admin
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Nu sunt privilegii de administrator. Reincercare ca administrator...
    powershell -Command "Start-Process -FilePath '%~f0' -Verb RunAs -Wait"
    exit /b
)

:: Setare variabile
set "DB_PATH=%~dp0"
set "MARIADB_VERSION=10.5"
set "MARIADB_BIN_PATH=C:\Program Files\MariaDB %MARIADB_VERSION%\bin"

:: Verificare existență MariaDB MSI
if not exist "%DB_PATH%mariadb.msi" (
    echo MariaDB MSI nu a fost găsit in %DB_PATH%.
    exit /b 1
)

:: Adăugare MariaDB la variabila PATH
powershell -Command "[System.Environment]::SetEnvironmentVariable('Path', $env:Path + ';%MARIADB_BIN_PATH%', [System.EnvironmentVariableTarget]::Machine)"

:: Dezinstalare versiune anterioară MariaDB (dacă există)
msiexec /x "%DB_PATH%mariadb.msi" /qn /norestart

:: Instalare silent MariaDB
msiexec /i "%DB_PATH%mariadb.msi" /qn /norestart ENABLEROOTACCESS=1 ROOTPASS="" PORT=3306 /L*V "%DB_PATH%install.log"

:: Verificare succes instalare
if %errorlevel% neq 0 (
    echo Eroare la instalare. Verificati install.log.
    exit /b %errorlevel%
)

:: Așteptare pentru finalizare
ping -n 10 127.0.0.1 >nul

:: Pornire serviciu MariaDB
sc start MariaDB
ping -n 5 127.0.0.1 >nul

:: Verificare dacă serviciul rulează corect
sc query MariaDB | find "RUNNING" >nul
if %errorlevel% neq 0 (
    echo Eroare: Serviciul MariaDB nu a pornit!
    exit /b 1
)

:: Verificare dacă MariaDB ascultă pe portul 3306
netstat -ano | find "3306" >nul
if %errorlevel% neq 0 (
    echo Eroare: MariaDB nu ascultă pe portul 3306!
    exit /b 1
)

:: Confirmare finalizare
echo Instalare finalizata cu succes!
endlocal
exit /b 0
