/*
Theme Name: Kadence Child
Theme URI: https://deine-website.de
Description: Ein Child Theme für das Kadence Theme
Author: Dein Name
Author URI: https://deine-website.de
Template: kadence
Version: 1.0
*/

@import url("../kadence/style.css");


function gemini_deep_media_scan() {
    global $wpdb;
    require_once(ABSPATH . 'wp-admin/includes/image.php');
    require_once(ABSPATH . 'wp-admin/includes/file.php');
    require_once(ABSPATH . 'wp-admin/includes/media.php');

    $upload_dir = wp_upload_dir()['basedir'];
    echo "<h3>Starte Deep Scan auf SSD...</h3>";

    // --- TEIL 1: DB-Einträge ohne Datei reparieren ---
    $missing_files = $wpdb->get_results("SELECT post_id, meta_value, meta_id FROM {$wpdb->postmeta} WHERE meta_key = '_wp_attached_file'");

    foreach ($missing_files as $item) {
        $full_path = $upload_dir . '/' . $item->meta_value;

        if (!file_exists($full_path)) {
            echo "Fehlt in DB: " . basename($full_path) . " - Suche Ersatz...<br>";

            // Suche nach Variationen (z.B. .webp statt .jpg oder mit -2)
            $path_info = pathinfo($full_path);
            $search_pattern = $path_info['dirname'] . '/' . $path_info['filename'] . '*.*';
            $matches = glob($search_pattern);

            if (!empty($matches)) {
                $new_file = $matches[0]; // Nimm den ersten Treffer
                $relative_path = str_replace($upload_dir . '/', '', $new_file);
                
                // Update den Pfad in der Datenbank
                update_post_meta($item->post_id, '_wp_attached_file', $relative_path);
                echo "✅ Repariert! Neuer Pfad: $relative_path<br>";
            }
        }
    }

    // --- TEIL 2: Neue Dateien auf SSD finden & Importieren ---
    echo "<h3>Suche nach neuen Dateien auf SSD (Unindexed)...</h3>";
    $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($upload_dir));
    foreach ($files as $file) {
        if ($file->isDir()) continue;
        
        $file_path = $file->getPathname();
        $file_name = basename($file_path);

        // Nur Bilder beachten
        if (!preg_match('/\.(jpg|jpeg|png|webp)$/i', $file_name)) continue;
        // Thumbnails ignorieren (z.B. -300x300.jpg)
        if (preg_match('/-\d+x\d+\./', $file_name)) continue;

        // Prüfen ob Datei schon in DB ist
        $relative_path = str_replace($upload_dir . '/', '', $file_path);
        $exists = $wpdb->get_var($wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_wp_attached_file' AND meta_value = %s", $relative_path));

        if (!$exists) {
            echo "Gefunden auf SSD: $file_name - Importiere...<br>";
            $wp_filetype = wp_check_filetype($file_name, null);
            $attachment = array(
                'post_mime_type' => $wp_filetype['type'],
                'post_title'     => sanitize_file_name($file_name),
                'post_content'   => '',
                'post_status'    => 'inherit'
            );
            $attach_id = wp_insert_attachment($attachment, $file_path);
            $attach_data = wp_generate_attachment_metadata($attach_id, $file_path);
            wp_update_attachment_metadata($attach_id, $attach_data);
        }
    }
    echo "<h3>Fertig!</h3>";
}

// Ändere den Aufruf am Ende des Skripts zu:
if (isset($_GET['quick_fix'])) { // Entferne is_admin() für den Test
    quick_repair_paths();
    exit; // Erzwingt den Stopp der Seite
}