<?php
/**
 * update_poi_address.php
 * Integriert in das bestehende System (Struktur wie caretaker)
 */

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// === Konfiguration & Logging (Exakt wie im Beispiel) ===
$debugLogFile = __DIR__ . '/update_poi_address_debug.log';
require_once __DIR__ . '/logging_functions.php';
require_once __DIR__ . '/validation_functions.php';
$config = require __DIR__ . '/config.php'; 
require_once __DIR__ . '/update_poi_general.php';

// Der Türsteher prüft ?db=prod aus deiner URL
enforceValidRequest($debugLogFile);

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

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

    if (json_last_error() !== JSON_ERROR_NONE || !is_array($data)) {
        throw new Exception('Ungültige JSON-Eingabe.');
    }

    // Validierung der Pflichtfelder
    if (!isset($data['gid'], $data['lat'], $data['lng'])) {
        throw new Exception('Fehlende Basis-Daten: GID, Lat oder Lng.');
    }

    // Daten für die zentrale Update-Funktion vorbereiten
    // WICHTIG: Die Felder müssen so heißen, wie sie in der DB oder in deiner general-Funktion erwartet werden
    $dataToUpdate = [
        'gid'           => $data['gid'],
        'updated_by'    => $data['username'] ?? 'system',
        'updated_at'    => date('Y-m-d H:i:s'),
        'street'        => $data['street'] ?? '',
        'house_no'      => $data['house_no'] ?? '',
        'localdistrict' => $data['localdistrict'] ?? '',
        'lat'           => (float)$data['lat'],
        'lng'           => (float)$data['lng'],
        'poiTable'      => $config['poiTable']
    ];

    internal_debug_log("Daten für general_update: " . print_r($dataToUpdate, true), $debugLogFile);

    // Aufruf der zentralen Logik
    $response = update_poi_general($dataToUpdate, $debugLogFile);

    echo json_encode($response);

} catch (Throwable $e) {
    $errorMessage = "Fehler: " . $e->getMessage() . " in " . $e->getFile() . ":" . $e->getLine();
    internal_debug_log($errorMessage, $debugLogFile);
    echo json_encode(['success' => false, 'error' => $e->getMessage()]);
}

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