<?php
include('session_handler.php');

// Pastikan hanya superadmin boleh akses fungsi ini
if (!isset($_SESSION['user_role']) || $_SESSION['user_role'] !== 'superadmin') {
    echo json_encode([
        'status' => 'error',
        'message' => 'Akses ditolak! Hanya Superadmin dibenarkan untuk memadam data.'
    ]);
    exit();
}

// Pastikan parameter dihantar
if (!isset($_POST['type']) || !isset($_POST['id'])) {
    echo json_encode([
        'status' => 'error',
        'message' => 'Parameter tidak lengkap.'
    ]);
    exit();
}

// Terima data POST
$type = $_POST['type'];
$id = intval($_POST['id']);

$table = '';
$id_field = 'ID';
$errorMessage = '';

// Tentukan table & mesej ralat mengikut jenis
switch ($type) {
    case 'jabatan':
        $table = 'jabatan';
        $id_field = 'ID';
        $errorMessage = 'Tidak boleh padam Jabatan kerana masih mempunyai Bahagian.';
        break;

    case 'bahagian':
        $table = 'bahagian';
        $id_field = 'ID';
        $errorMessage = 'Tidak boleh padam Bahagian kerana masih mempunyai Kategori.';
        break;

    case 'kategori':
        $table = 'kategori';
        $id_field = 'ID';
        $errorMessage = 'Tidak boleh padam Kategori kerana masih mempunyai Subkategori.';
        break;

    case 'subkategori':
        $table = 'subkategori';
        $id_field = 'ID';
        $errorMessage = 'Tidak boleh padam Subkategori kerana masih mempunyai No Rujukan.';
        break;

    case 'norujukan':
        $table = 'surat'; 
        $id_field = 'ID';
        $errorMessage = 'Tidak boleh padam No Rujukan.';
        break;

    default:
        echo json_encode([
            'status' => 'error',
            'message' => 'Jenis data tidak sah!'
        ]);
        exit();
}

try {
    // Sediakan statement DELETE
    $sql = "DELETE FROM $table WHERE $id_field = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param('i', $id);

    if ($stmt->execute()) {
        if ($stmt->affected_rows > 0) {
            echo json_encode([
                'status' => 'success',
                'message' => ucfirst($type) . ' berjaya dipadam.'
            ]);
        } else {
            echo json_encode([
                'status' => 'error',
                'message' => 'Rekod tidak dijumpai atau sudah dipadam.'
            ]);
        }
    } else {
        echo json_encode([
            'status' => 'error',
            'message' => $errorMessage
        ]);
    }

    $stmt->close();
    $conn->close();
} catch (mysqli_sql_exception $e) {
    // Tangani error Foreign Key
    if (strpos($e->getMessage(), 'foreign key constraint fails') !== false) {
        echo json_encode([
            'status' => 'error',
            'message' => $errorMessage
        ]);
    } else {
        echo json_encode([
            'status' => 'error',
            'message' => 'Ralat: ' . $e->getMessage()
        ]);
    }
}
?>