<?php
session_start();
require_once '../config.php';

// Cek apakah user sudah login dan role-nya guru
if (!isset($_SESSION['user']) || $_SESSION['user']['role'] !== 'guru') {
    header('Content-Type: application/json');
    echo json_encode([
        'success' => false,
        'message' => 'Akses ditolak. Hanya guru yang dapat mengakses ini.'
    ]);
    exit();
}

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

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $nis = $conn->real_escape_string($_POST['nis']);
    $kode_mapel = $conn->real_escape_string($_POST['kode_mapel']);
    
    // Debug: Log data yang diterima
    error_log("Data received - NIS: $nis, Mapel: $kode_mapel");
    
    // Ambil hari, tanggal, dan jam saat ini
    $hari = date('l');
    $hari_indonesia = [
        'Sunday' => 'Minggu',
        'Monday' => 'Senin',
        'Tuesday' => 'Selasa',
        'Wednesday' => 'Rabu',
        'Thursday' => 'Kamis',
        'Friday' => 'Jumat',
        'Saturday' => 'Sabtu'
    ];
    $hari = $hari_indonesia[$hari];
    $tanggal = date('Y-m-d');
    $jam = date('H:i:s');
    
    // Cek apakah siswa ada
    $check_siswa_sql = "SELECT * FROM ujn_siswa WHERE nis = '$nis'";
    $check_siswa_result = $conn->query($check_siswa_sql);
    
    if ($check_siswa_result->num_rows === 0) {
        echo json_encode([
            'success' => false,
            'message' => 'Siswa dengan NIS ' . $nis . ' tidak ditemukan dalam database'
        ]);
        exit;
    }
    
    $siswa_data = $check_siswa_result->fetch_assoc();
    
    // Cek apakah mata pelajaran ada
    $check_mapel_sql = "SELECT * FROM ujn_mata_pelajaran WHERE kode_mapel = '$kode_mapel'";
    $check_mapel_result = $conn->query($check_mapel_sql);
    
    if ($check_mapel_result->num_rows === 0) {
        echo json_encode([
            'success' => false,
            'message' => 'Mata pelajaran dengan kode ' . $kode_mapel . ' tidak ditemukan'
        ]);
        exit;
    }
    
    $mapel_data = $check_mapel_result->fetch_assoc();
    
    // Cek apakah siswa sudah absen untuk mata pelajaran ini hari ini
    $check_sql = "SELECT * FROM ujn_kehadiran WHERE nis = '$nis' AND kode_mapel = '$kode_mapel' AND tanggal = '$tanggal'";
    $check_result = $conn->query($check_sql);
    
    if ($check_result->num_rows > 0) {
        $existing_data = $check_result->fetch_assoc();
        echo json_encode([
            'success' => false,
            'message' => 'Siswa ' . $siswa_data['nama'] . ' (NIS: ' . $nis . ') sudah melakukan absensi untuk ' . $mapel_data['nama_mapel'] . ' hari ini pada jam ' . $existing_data['jam']
        ]);
        exit;
    }
    
    // Simpan data kehadiran
    $insert_sql = "INSERT INTO ujn_kehadiran (nis, kode_mapel, hari, tanggal, jam) 
                   VALUES ('$nis', '$kode_mapel', '$hari', '$tanggal', '$jam')";
    
    if ($conn->query($insert_sql)) {
        echo json_encode([
            'success' => true,
            'message' => 'Kehadiran berhasil direkam untuk ' . $siswa_data['nama'],
            'tanggal' => date('d-m-Y', strtotime($tanggal)),
            'jam' => $jam
        ]);
        
        error_log("Kehadiran berhasil disimpan untuk NIS: $nis, Mapel: $kode_mapel");
    } else {
        $error_message = 'Gagal menyimpan data kehadiran: ' . $conn->error;
        error_log($error_message);
        echo json_encode([
            'success' => false,
            'message' => $error_message
        ]);
    }
} else {
    echo json_encode([
        'success' => false,
        'message' => 'Metode request tidak valid'
    ]);
}

$conn->close();
?>