<?php
session_start();
header('Content-Type: application/json');

// Pastikan pengguna adalah siswa dan sudah login
if (!isset($_SESSION['user_logged_in']) || $_SESSION['user_type'] != 'siswa') {
    echo json_encode(['status' => 'error', 'message' => 'Akses ditolak.']);
    exit();
}

include '../config/koneksi.php';

$id_siswa = $_SESSION['id_user'];
$pin_lama = $_POST['pin_lama'] ?? '';
$pin_baru = $_POST['pin_baru'] ?? '';
$konfirmasi_pin = $_POST['konfirmasi_pin'] ?? '';

// Validasi input
if (empty($pin_lama) || empty($pin_baru) || empty($konfirmasi_pin)) {
    echo json_encode(['status' => 'error', 'message' => 'Semua field wajib diisi.']);
    exit();
}

if ($pin_baru !== $konfirmasi_pin) {
    echo json_encode(['status' => 'error', 'message' => 'PIN baru dan konfirmasi PIN tidak cocok.']);
    exit();
}

if (strlen($pin_baru) !== 6 || !is_numeric($pin_baru)) {
    echo json_encode(['status' => 'error', 'message' => 'PIN harus 6 digit angka.']);
    exit();
}

try {
    // Ambil PIN lama dari tabel 'siswa'
    $stmt = $pdo->prepare("SELECT pin FROM siswa WHERE id_siswa = ?");
    $stmt->execute([$id_siswa]);
    $current_pin = $stmt->fetchColumn();

    if ($current_pin !== $pin_lama) {
        echo json_encode(['status' => 'error', 'message' => 'PIN lama salah.']);
        exit();
    }

    // Update PIN baru di database
    $stmt_update = $pdo->prepare("UPDATE siswa SET pin = ? WHERE id_siswa = ?");
    $stmt_update->execute([$pin_baru, $id_siswa]);

    echo json_encode(['status' => 'success', 'message' => 'PIN berhasil diubah.']);

} catch (PDOException $e) {
    echo json_encode(['status' => 'error', 'message' => 'Terjadi kesalahan database: ' . $e->getMessage()]);
}
?>