@echo off
setlocal enabledelayedexpansion

:: Fikatia V2024 - Master COM Object Registration Script

:: Check for admin rights
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if %errorlevel% neq 0 (
    echo Bu komut dosyasını yönetici olarak çalıştırmanız gerekiyor.
    echo Administrator haklarıyla çalıştırın.
    pause
    exit /b 1
)

:: Get the script's parent directory (project root)
pushd "%~dp0.."
for /f "delims=" %%A in ('cd') do set "PROJECT_ROOT=%%A"
popd

:: Use embedded Python interpreter
set "PYTHON_INTERPRETER=%PROJECT_ROOT%\python312.2\python.exe"

if not exist "%PYTHON_INTERPRETER%" (
    echo Python yorumlayıcısı bulunamadı: %PYTHON_INTERPRETER%
    pause
    exit /b 1
)

echo Debug - PROJECT_ROOT: %PROJECT_ROOT%
echo Debug - PYTHON_INTERPRETER: %PYTHON_INTERPRETER%

:: Directories to register (relative to project root)
set REGISTER_DIRS[0]=%PROJECT_ROOT%\IDialoglar\IFikoCurveSmooth
set REGISTER_DIRS[1]=%PROJECT_ROOT%\IDialoglar\IFikoMfgParametreDegistirici
set REGISTER_DIRS[2]=%PROJECT_ROOT%\IDialoglar\IFikoUniACHead
set REGISTER_DIRS[3]=%PROJECT_ROOT%\IDialoglar\IFikoTav20
set REGISTER_DIRS[4]=%PROJECT_ROOT%\IDialoglar\IFikoAktiviteAyirici
set REGISTER_DIRS[5]=%PROJECT_ROOT%\IDialoglar\IFikoProfilPrgAlistirma
set REGISTER_DIRS[6]=%PROJECT_ROOT%\IDialoglar\IFikoRsmToPart
set REGISTER_DIRS[7]=%PROJECT_ROOT%\IDialoglar\IFikoKutuk
set REGISTER_DIRS[8]=%PROJECT_ROOT%\IDialoglar\IFikoProductToPart
set REGISTER_DIRS[9]=%PROJECT_ROOT%\IDialoglar\IFikoScript
set REGISTER_DIRS[10]=%PROJECT_ROOT%\Projeler\Yalin\FikoTikAptPost
set REGISTER_DIRS[11]=%PROJECT_ROOT%\Projeler\Flet\FikoPostV2023
set REGISTER_DIRS[12]=%PROJECT_ROOT%\Projeler\Yalin\FikoPostTakipcisi
set REGISTER_DIRS[13]=%PROJECT_ROOT%\Projeler\Yalin\FikoDokumantasyon
set REGISTER_DIRS[14]=%PROJECT_ROOT%\Projeler\QTBilesenleri\FikoPost2015

set /a TOTAL_DIRS=15
set SUCCESSFUL_REGISTRATIONS=0
set FAILED_REGISTRATIONS=0

echo Fikatia V2024 - COM Nesne Kayıt İşlemi Başlatılıyor...
echo Toplam kayıt edilecek dizin: %TOTAL_DIRS%

:: Registration loop
for /L %%i in (0,1,14) do (
    echo.
    echo [%%i+1/%TOTAL_DIRS%] Kayıt ediliyor: !REGISTER_DIRS[%%i]!
    pushd "!REGISTER_DIRS[%%i]!"

    "%PYTHON_INTERPRETER%" registerCom.py /register > temp_output.txt 2>&1

    REM Check if "Registered" string exists in output (using findstr for better encoding support)
    findstr /i "Registered" temp_output.txt >nul

    if !errorlevel! equ 0 (
        set /a SUCCESSFUL_REGISTRATIONS+=1
        echo ✓ Başarıyla kayıt edildi
        findstr /i "Registered" temp_output.txt
    ) else (
        set /a FAILED_REGISTRATIONS+=1
        echo ✗ Kayıt sırasında hata oluştu
        type temp_output.txt
    )

    del /f /q temp_output.txt >nul 2>&1
    popd
)

echo.
echo === Kayıt İşlemi Tamamlandı ===
echo Başarılı Kayıtlar: %SUCCESSFUL_REGISTRATIONS%
echo Başarısız Kayıtlar: %FAILED_REGISTRATIONS%

if %FAILED_REGISTRATIONS% gtr 0 (
    echo DİKKAT: Bazı COM nesneleri kayıt edilemedi. Hata günlüklerini kontrol edin.
    pause
)

exit /b 0