<?php
// update_poi_clean.php

// PHP-Fehlermeldungen direkt anzeigen, nur für Debug-Zwecke
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);


// === Konfiguration, Logging und Validierung importieren ===
// Die Reihenfolge ist wichtig, um Abhängigkeitsfehler zu vermeiden.

$debugLogFile = __DIR__ . '/update_poi_clean_debug.log';
require_once __DIR__ . '/logging_functions.php';
require_once __DIR__ . '/validation_functions.php';
$config = require_once __DIR__ . '/config.php';


require_once __DIR__ . '/update_poi_general.php';

// === Aufruf der Validierungsfunktion ===
// Sie übergeben den korrekten Logfile-Pfad.
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'),
        'last_cleaned' => date('Y-m-d H:i:s'),
        'cleaned_by' => $data['username'],
        // p_param ist null, wenn es nicht in der URL vorhanden ist.
       //  'p_param' => isset($_GET['p']) ? $_GET['p'] : null,  obsolet!!!
        // tablePrefix aus der Konfiguration hinzufügen.
        '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);
?>