<?php
// update_poi_dirty.php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// === Schritt 1: Debug-Logfile und Logging-Funktion zuerst definieren ===
$debugLogFile = __DIR__ . '/update_poi_dirty_debug.log';
require_once __DIR__ . '/logging_functions.php';

// === Schritt 2: Konfiguration und andere Funktionen laden ===
$config = require_once __DIR__ . '/config.php';
require_once __DIR__ . '/validation_functions.php';
require_once __DIR__ . '/update_poi_general.php';
require_once __DIR__ . '/db-connection.php'; // Für die Fehlerbehandlung laden

// === Schritt 3: Validierungsprüfung ausführen ===
// Das dirty-Skript benötigt keine URL-Parameter.
if (!isValidDatabaseRequest($debugLogFile)) {
    http_response_code(400);
    echo json_encode(["error" => "Ungültige URL-Parameter. Nur '?p' oder keine Parameter sind erlaubt."]);
    exit;
}

internal_debug_log("--- " . basename(__FILE__) . " START ---", $debugLogFile);
header('Content-Type: application/json');

try {
    // Eingabedaten des Clients verarbeiten
    $input = file_get_contents('php://input');
    $data = json_decode($input, true);

    if (json_last_error() !== JSON_ERROR_NONE) {
        internal_debug_log("JSON Decode Error: " . json_last_error_msg(), $debugLogFile);
        echo json_encode(['success' => false, 'error' => 'Ungültige JSON-Eingabe.']);
        exit;
    }

    // Daten für die allgemeine Funktion vorbereiten
    $dataToUpdate = [
        'gid' => $data['gid'],
        'updated_by' => $data['username'],
        'updated_at' => date('Y-m-d H:i:s'),
        // === Spezifische Logik für Dirty-Skript ===
        'last_cleaned' => date('Y-m-d H:i:s', strtotime('-1 year')), // Setzt Datum auf vor 1 Jahr
        'cleaned_by' => null, // Setzt cleaned_by auf NULL
        // ===========================================
        'tablePrefix' => $config['tablePrefix']
    ];
    internal_debug_log("Data prepared for general update function: " . print_r($dataToUpdate, true), $debugLogFile);

    // Die allgemeine Funktion aufrufen
    $response = update_poi_general($dataToUpdate, $debugLogFile);

    // Das Ergebnis zurückgeben
    echo json_encode($response);

} catch (Throwable $e) {
    $errorMessage = "Unhandled exception/error: " . $e->getMessage() . " in " . $e->getFile() . " on line " . $e->getLine();
    internal_debug_log($errorMessage, $debugLogFile);
    echo json_encode(['success' => false, 'error' => 'Ein unerwarteter Serverfehler ist aufgetreten.', 'details' => $errorMessage]);
}

internal_debug_log("--- " . basename(__FILE__) . " END ---", $debugLogFile);
?>