<?php
// save_content.php
// Egyszerű JSON-alapú mentés az Égner Rend szerkesztőhöz

header('Content-Type: application/json; charset=utf-8');

// Csak POST kérést engedünk
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode([
        'success' => false,
        'error'   => 'Csak POST metódus engedélyezett.'
    ]);
    exit;
}

// A nyers JSON beolvasása
$raw = file_get_contents('php://input');
$data = json_decode($raw, true);

if (!is_array($data)) {
    http_response_code(400);
    echo json_encode([
        'success' => false,
        'error'   => 'Hibás JSON formátum.'
    ]);
    exit;
}

// Kötelező mezők
$page = isset($data['page']) ? trim($data['page']) : '';
$title = isset($data['title']) ? trim($data['title']) : '';
$lead  = isset($data['lead'])  ? trim($data['lead'])  : '';
$body  = isset($data['body'])  ? trim($data['body'])  : '';

if ($page === '') {
    http_response_code(400);
    echo json_encode([
        'success' => false,
        'error'   => 'Hiányzik a page kulcs.'
    ]);
    exit;
}

// Itt lehetne egy jogosultság-ellenőrzés (pl. session), ha már van login rendszer.
// if (!isset($_SESSION['is_admin']) || $_SESSION['is_admin'] !== true) { ... }

$filePath = __DIR__ . '/contents.json';

// Meglévő tartalom beolvasása (ha létezik)
$contents = [];
if (file_exists($filePath)) {
    $json = file_get_contents($filePath);
    $decoded = json_decode($json, true);
    if (is_array($decoded)) {
        $contents = $decoded;
    }
}

// Oldal adatainak frissítése
$contents[$page] = [
    'title' => $title,
    'lead'  => $lead,
    'body'  => $body,
    'updated_at' => date('Y-m-d H:i:s')
];

// JSON mentése (egyszerű file lockkal)
$tmpPath = $filePath . '.tmp';
if (file_put_contents($tmpPath, json_encode($contents, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)) === false) {
    http_response_code(500);
    echo json_encode([
        'success' => false,
        'error'   => 'Nem sikerült ideiglenes fájlba menteni.'
    ]);
    exit;
}

if (!rename($tmpPath, $filePath)) {
    http_response_code(500);
    echo json_encode([
        'success' => false,
        'error'   => 'Nem sikerült a contents.json frissítése.'
    ]);
    exit;
}

echo json_encode([
    'success' => true,
    'message' => 'Sikeres mentés.',
    'page'    => $page
]);
