@echo off
setlocal enabledelayedexpansion

:: Fikatia V2024 - Master COM Object Unregistration 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
)

:: Prompt for confirmation
echo DİKKAT: Tüm Fikatia V2024 COM nesnelerini sistemden kaldıracaksınız.
set /p CONFIRM="Devam etmek istediğinizden emin misiniz? (E/H): "
if /i not "%CONFIRM%"=="E" (
    echo İşlem iptal edildi.
    exit /b 0
)

:: 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
)

:: Directories to unregister (relative to project root)
set UNREGISTER_DIRS[0]=%PROJECT_ROOT%\IDialoglar\IFikoCurveSmooth
set UNREGISTER_DIRS[1]=%PROJECT_ROOT%\IDialoglar\IFikoMfgParametreDegistirici
set UNREGISTER_DIRS[2]=%PROJECT_ROOT%\IDialoglar\IFikoUniACHead
set UNREGISTER_DIRS[3]=%PROJECT_ROOT%\IDialoglar\IFikoTav20
set UNREGISTER_DIRS[4]=%PROJECT_ROOT%\IDialoglar\IFikoAktiviteAyirici
set UNREGISTER_DIRS[5]=%PROJECT_ROOT%\IDialoglar\IFikoProfilPrgAlistirma
set UNREGISTER_DIRS[6]=%PROJECT_ROOT%\IDialoglar\IFikoRsmToPart
set UNREGISTER_DIRS[7]=%PROJECT_ROOT%\IDialoglar\IFikoKutuk
set UNREGISTER_DIRS[8]=%PROJECT_ROOT%\IDialoglar\IFikoProductToPart
set UNREGISTER_DIRS[9]=%PROJECT_ROOT%\IDialoglar\IFikoScript
set UNREGISTER_DIRS[10]=%PROJECT_ROOT%\Projeler\Yalin\FikoTikAptPost
set UNREGISTER_DIRS[11]=%PROJECT_ROOT%\Projeler\Flet\FikoPostV2023
set UNREGISTER_DIRS[12]=%PROJECT_ROOT%\Projeler\Yalin\FikoPostTakipcisi
set UNREGISTER_DIRS[13]=%PROJECT_ROOT%\Projeler\Yalin\FikoDokumantasyon
set UNREGISTER_DIRS[14]=%PROJECT_ROOT%\Projeler\QTBilesenleri\FikoPost2015

set /a TOTAL_DIRS=15
set SUCCESSFUL_UNREGISTRATIONS=0
set FAILED_UNREGISTRATIONS=0

echo Fikatia V2024 - COM Nesne Kaldırma İşlemi Başlatılıyor...
echo Toplam kaldırılacak dizin: %TOTAL_DIRS%

:: Unregistration loop
for /L %%i in (0,1,14) do (
    echo.
    echo [%%i+1/%TOTAL_DIRS%] Kaldırılıyor: !UNREGISTER_DIRS[%%i]!
    pushd "!UNREGISTER_DIRS[%%i]!"

    "%PYTHON_INTERPRETER%" registerCom.py /unregister > temp_output.txt 2>&1

    REM Check if "Unregistered" string exists in output (using findstr for better encoding support)
    findstr /i "Unregistered" temp_output.txt >nul

    if !errorlevel! equ 0 (
        set /a SUCCESSFUL_UNREGISTRATIONS+=1
        echo ✓ Başarıyla kaldırıldı
        findstr /i "Unregistered" temp_output.txt
    ) else (
        set /a FAILED_UNREGISTRATIONS+=1
        echo ✗ Kaldırma sırasında hata oluştu
        type temp_output.txt
    )

    del /f /q temp_output.txt >nul 2>&1
    popd
)

echo.
echo === Kaldırma İşlemi Tamamlandı ===
echo Başarılı Kaldırmalar: %SUCCESSFUL_UNREGISTRATIONS%
echo Başarısız Kaldırmalar: %FAILED_UNREGISTRATIONS%

if %FAILED_UNREGISTRATIONS% gtr 0 (
    echo DİKKAT: Bazı COM nesneleri kaldırılamadı. Hata günlüklerini kontrol edin.
    pause
)

exit /b 0