<?php
/**
 * Spalten-Handler
 * Verarbeitet AJAX-Requests für Spalten-Auswahl
 */

// db.php macht schon session_start() - nicht nochmal!
require_once 'db.php';
require_once 'helpers.php';

header('Content-Type: application/json');

// Login prüfen
if (!isLoggedIn()) {
    http_response_code(401);
    echo json_encode(['success' => false, 'error' => 'Not logged in']);
    exit;
}

// CSRF-Token prüfen - verwende das Token aus der Session
$submitted_token = $_POST['csrf_token'] ?? '';
$session_token = $_SESSION['csrf_token'] ?? '';

if (empty($submitted_token) || $submitted_token !== $session_token) {
    http_response_code(403);
    echo json_encode([
        'success' => false, 
        'error' => 'CSRF token invalid',
        'debug' => [
            'submitted' => substr($submitted_token, 0, 10) . '...',
            'session' => substr($session_token, 0, 10) . '...'
        ]
    ]);
    exit;
}

$action = $_POST['action'] ?? '';

switch ($action) {
    case 'save':
        // Spalten dauerhaft speichern
        $spalten = [];
        $verfuegbareSpalten = getAvailableSpalten();
        
        foreach (array_keys($verfuegbareSpalten) as $spalte) {
            $spalten[$spalte] = ($_POST[$spalte] ?? 'false') === 'true';
        }
        
        if (saveSpaltenAuswahl($spalten)) {
            echo json_encode(['success' => true, 'message' => 'Spalten gespeichert']);
        } else {
            http_response_code(500);
            echo json_encode(['success' => false, 'error' => 'Database error']);
        }
        break;
        
    case 'reset':
        // Spalten auf Standard zurücksetzen
        if (resetSpaltenAuswahl()) {
            echo json_encode(['success' => true, 'message' => 'Zurückgesetzt']);
        } else {
            http_response_code(500);
            echo json_encode(['success' => false, 'error' => 'Database error']);
        }
        break;
        
    case 'temp':
        // Spalten temporär in Session speichern
        $spalten = [];
        $verfuegbareSpalten = getAvailableSpalten();
        
        foreach (array_keys($verfuegbareSpalten) as $spalte) {
            $spalten[$spalte] = ($_POST[$spalte] ?? 'false') === 'true';
        }
        
        $_SESSION['spalten_auswahl'] = $spalten;
        echo json_encode(['success' => true, 'message' => 'Temporär gespeichert']);
        break;
        
    default:
        http_response_code(400);
        echo json_encode(['success' => false, 'error' => 'Invalid action']);
        break;
}
?>
