<?php
require_once __DIR__.'/../../config/functions.php';
requireLogin();
if (empty($_POST) && isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['CONTENT_LENGTH'] > 0) {
    jsonResponse(false, 'Ralat: Saiz fail melebihi had maksimum pelayan. Sila muat naik fail atau gambar bersaiz lebih kecil (bawah 30MB).');
}
if(!verifyCsrfToken($_POST['csrf_token']??''))jsonResponse(false,'CSRF Error');
$tajuk=sanitize($_POST['tajuk']??'');
$pegawai_id = $_SESSION['pegawai_id'] ?? 0;
if (isSuperAdmin() && isset($_POST['pegawai_id'])) {
    $pegawai_id = intval($_POST['pegawai_id']);
}
if(!$tajuk||!$pegawai_id)jsonResponse(false,'Data tidak lengkap atau anda belum dikaitkan dengan profil pegawai.');
$id = intval($_POST['id'] ?? 0);
$lampiran = '';

if ($id > 0) {
    // Mode Update
    $stmt = $pdo->prepare("SELECT * FROM informasi WHERE id = ?");
    $stmt->execute([$id]);
    $old = $stmt->fetch();
    if (!$old) jsonResponse(false, 'Rekod tidak dijumpai.');

    // Hak akses: Superadmin atau pemilik
    if (!isSuperAdmin() && (!empty($_SESSION['pegawai_id']) && $_SESSION['pegawai_id'] != $old['pegawai_id'])) {
        jsonResponse(false, 'Anda tiada kebenaran untuk mengemaskini rekod ini.');
    }
    
    $lampiran = $old['lampiran'];
    if (!empty($_FILES['lampiran']['name'])) {
        $r = uploadDocument($_FILES['lampiran']);
        if ($r['success']) {
            if ($lampiran) deleteFile('documents/' . $lampiran);
            $lampiran = $r['filename'];
        } else {
            jsonResponse(false, $r['message']);
        }
    }

    $stmt = $pdo->prepare("UPDATE informasi SET tajuk=?, kandungan=?, jenis=?, tarikh=?, lampiran=? WHERE id=?");
    $stmt->execute([$tajuk, sanitize($_POST['kandungan']??''), sanitize($_POST['jenis']??'umum'), $_POST['tarikh']??null, $lampiran, $id]);
    logActivity('Kemaskini', 'informasi', $id, 'Kemaskini maklumat: ' . $tajuk);
    jsonResponse(true, 'Maklumat berjaya dikemaskini!');
} else {
    // Mode Tambah
    if (!empty($_FILES['lampiran']['name'])) {
        $r = uploadDocument($_FILES['lampiran']);
        if ($r['success']) {
            $lampiran = $r['filename'];
        } else {
            jsonResponse(false, $r['message']);
        }
    }
    $stmt = $pdo->prepare("INSERT INTO informasi (pegawai_id, tajuk, kandungan, jenis, tarikh, lampiran) VALUES (?,?,?,?,?,?)");
    $stmt->execute([$pegawai_id, $tajuk, sanitize($_POST['kandungan']??''), sanitize($_POST['jenis']??'umum'), $_POST['tarikh']??null, $lampiran]);
    logActivity('Tambah', 'informasi', $pdo->lastInsertId(), 'Tambah maklumat: ' . $tajuk);
    jsonResponse(true, 'Maklumat berjaya ditambah!');
}
