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

// Cek login
checkLogin();

$current_user = getCurrentUser();
$tahun_ajaran_aktif = getTahunAjaranAktif();

if (!$tahun_ajaran_aktif) {
    $_SESSION['modal_title'] = 'Tahun Ajaran Tidak Aktif!';
    $_SESSION['modal_message'] = 'Tidak ada tahun ajaran yang aktif. Silakan aktifkan tahun ajaran terlebih dahulu.';
    $_SESSION['modal_type'] = 'warning';
    $_SESSION['modal_redirect'] = 'index.php';
    header('Location: index.php');
    exit;
}

// Ambil data siswa aktif
$siswa_query = "SELECT s.*, sk.id_kelas, k.nama_kelas 
                FROM bkcare_siswa s
                LEFT JOIN bkcare_siswa_kelas sk ON s.id_siswa = sk.id_siswa AND sk.status = 'aktif'
                LEFT JOIN bkcare_kelas k ON sk.id_kelas = k.id_kelas
                WHERE s.status = 'aktif'
                ORDER BY s.nama ASC";
$siswa_result = mysqli_query($conn, $siswa_query);

// Ambil data guru BK
$guru_query = "SELECT g.*, u.nama, u.id_user 
               FROM bkcare_guru g
               LEFT JOIN bkcare_users u ON g.id_user = u.id_user
               WHERE u.role = 'guru_bk' AND u.is_active = 1
               ORDER BY g.nama_guru ASC";
$guru_result = mysqli_query($conn, $guru_query);

// Proses tambah data
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $id_siswa = (int)$_POST['id_siswa'];
    $id_guru_bk = (int)$_POST['id_guru_bk'];
    $tanggal = mysqli_real_escape_string($conn, $_POST['tanggal']);
    $jam = mysqli_real_escape_string($conn, $_POST['jam']);
    $keterangan = mysqli_real_escape_string($conn, $_POST['keterangan']);
    $status = 'diajukan';
    
    // Validasi
    $errors = [];
    
    if ($id_siswa <= 0) {
        $errors[] = 'Siswa harus dipilih';
    }
    
    if ($id_guru_bk <= 0) {
        $errors[] = 'Guru BK harus dipilih';
    }
    
    if (empty($tanggal)) {
        $errors[] = 'Tanggal konseling harus diisi';
    }
    
    if (empty($jam)) {
        $errors[] = 'Jam konseling harus diisi';
    }
    
    // Cek jadwal bentrok
    if (empty($errors)) {
        $check_query = "SELECT COUNT(*) as total FROM bkcare_jadwal_konseling 
                        WHERE id_guru_bk = $id_guru_bk 
                        AND tanggal = '$tanggal' 
                        AND jam = '$jam'
                        AND status NOT IN ('selesai', 'dibatalkan')";
        $check_result = mysqli_query($conn, $check_query);
        $check = mysqli_fetch_assoc($check_result);
        
        if ($check['total'] > 0) {
            $errors[] = 'Jadwal bentrok dengan jadwal lain untuk guru BK yang sama';
        }
    }
    
    // Jika tidak ada error
    if (empty($errors)) {
        // Mulai transaksi
        mysqli_begin_transaction($conn);
        
        try {
            // Insert ke tabel jadwal konseling
            $query = "INSERT INTO bkcare_jadwal_konseling (id_siswa, id_guru_bk, id_tahun_ajaran, tanggal, jam, status, keterangan) 
                      VALUES ($id_siswa, $id_guru_bk, {$tahun_ajaran_aktif['id_tahun_ajaran']}, '$tanggal', '$jam', '$status', '$keterangan')";
            
            if (!mysqli_query($conn, $query)) {
                throw new Exception('Gagal menyimpan jadwal konseling: ' . mysqli_error($conn));
            }
            
            $id_jadwal = mysqli_insert_id($conn);
            
            // Buat notifikasi untuk guru BK yang dipilih
            // Ambil id_user dari guru BK yang dipilih
            $get_guru_user = "SELECT id_user FROM bkcare_guru WHERE id_guru = $id_guru_bk";
            $result_guru_user = mysqli_query($conn, $get_guru_user);
            $guru_data = mysqli_fetch_assoc($result_guru_user);
            
            if ($guru_data && $guru_data['id_user']) {
                $pesan_guru = "Jadwal konseling baru dari siswa untuk tanggal " . tgl_indonesia($tanggal) . " jam " . date('H:i', strtotime($jam));
                // Hapus kolom created_at karena tidak ada di tabel
                $notif_guru = "INSERT INTO bkcare_notifikasi (id_user, pesan, status) 
                               VALUES ({$guru_data['id_user']}, '$pesan_guru', 'belum_dibaca')";
                
                if (!mysqli_query($conn, $notif_guru)) {
                    throw new Exception('Gagal menyimpan notifikasi untuk guru: ' . mysqli_error($conn));
                }
            }
            
            // Buat notifikasi untuk admin (opsional)
            // Hapus kolom created_at karena tidak ada di tabel
            $notif_admin = "INSERT INTO bkcare_notifikasi (id_user, pesan, status) 
                            SELECT id_user, 'Jadwal konseling baru telah dibuat oleh siswa', 'belum_dibaca'
                            FROM bkcare_users 
                            WHERE role = 'admin' AND is_active = 1";
            
            if (!mysqli_query($conn, $notif_admin)) {
                throw new Exception('Gagal menyimpan notifikasi untuk admin: ' . mysqli_error($conn));
            }
            
            // Buat notifikasi untuk siswa (opsional)
            // Ambil id_user dari siswa yang dipilih (jika siswa memiliki akun user)
            $get_siswa_user = "SELECT id_user FROM bkcare_siswa WHERE id_siswa = $id_siswa";
            $result_siswa_user = mysqli_query($conn, $get_siswa_user);
            $siswa_data = mysqli_fetch_assoc($result_siswa_user);
            
            if ($siswa_data && $siswa_data['id_user']) {
                $pesan_siswa = "Jadwal konseling Anda telah dibuat untuk tanggal " . tgl_indonesia($tanggal) . " jam " . date('H:i', strtotime($jam));
                $notif_siswa = "INSERT INTO bkcare_notifikasi (id_user, pesan, status) 
                               VALUES ({$siswa_data['id_user']}, '$pesan_siswa', 'belum_dibaca')";
                
                if (!mysqli_query($conn, $notif_siswa)) {
                    throw new Exception('Gagal menyimpan notifikasi untuk siswa: ' . mysqli_error($conn));
                }
            }
            
            // Commit transaksi
            mysqli_commit($conn);
            
            $_SESSION['modal_title'] = 'Berhasil!';
            $_SESSION['modal_message'] = 'Jadwal konseling berhasil dibuat';
            $_SESSION['modal_type'] = 'success';
            $_SESSION['modal_redirect'] = 'detail.php?id=' . $id_jadwal;
            
        } catch (Exception $e) {
            mysqli_rollback($conn);
            $_SESSION['modal_title'] = 'Gagal!';
            $_SESSION['modal_message'] = $e->getMessage();
            $_SESSION['modal_type'] = 'danger';
            $_SESSION['modal_redirect'] = 'tambah.php';
        }
    } else {
        $_SESSION['modal_title'] = 'Validasi Gagal!';
        $_SESSION['modal_message'] = implode('<br>', $errors);
        $_SESSION['modal_type'] = 'warning';
        $_SESSION['modal_redirect'] = 'tambah.php';
    }
    
    header('Location: ' . $_SESSION['modal_redirect']);
    exit;
}

include '../../includes/header.php';
include '../../includes/navbar.php';
?>

<!-- Main Content -->
<main class="container mx-auto px-4 py-6">
    <div class="max-w-3xl mx-auto">
        <!-- Header -->
        <div class="flex items-center mb-6">
            <a href="index.php" class="text-gray-600 hover:text-blue-600 transition mr-4">
                <i class="fas fa-arrow-left text-xl"></i>
            </a>
            <div>
                <h1 class="text-2xl font-bold text-gray-800 flex items-center">
                    <i class="fas fa-plus-circle text-blue-600 mr-3"></i>
                    Buat Jadwal Konseling
                </h1>
                <p class="text-gray-600 text-sm mt-1">Isi form berikut untuk membuat jadwal konseling baru</p>
            </div>
        </div>

        <!-- Info Tahun Ajaran -->
        <div class="bg-blue-50 border-l-4 border-blue-500 p-4 mb-6 rounded-lg">
            <div class="flex items-start">
                <i class="fas fa-info-circle text-blue-500 mt-1 mr-3"></i>
                <div>
                    <p class="text-sm text-blue-700">
                        <span class="font-semibold">Tahun Ajaran Aktif:</span> 
                        <?= $tahun_ajaran_aktif['tahun_ajaran'] ?> - Semester <?= ucfirst($tahun_ajaran_aktif['semester']) ?>
                    </p>
                    <p class="text-xs text-blue-600 mt-1">Jadwal akan dibuat untuk tahun ajaran aktif saat ini</p>
                </div>
            </div>
        </div>

        <!-- Form -->
        <div class="bg-white rounded-xl shadow-sm p-8">
            <form action="" method="POST" id="tambahForm">
                <!-- Pilih Siswa -->
                <div class="mb-6">
                    <label class="block text-sm font-medium text-gray-700 mb-2">
                        <i class="fas fa-user-graduate text-blue-600 mr-2"></i>
                        Siswa <span class="text-red-500">*</span>
                    </label>
                    <select name="id_siswa" 
                            class="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-blue-600 focus:border-transparent outline-none transition bg-gray-50"
                            required>
                        <option value="">-- Pilih Siswa --</option>
                        <?php while($siswa = mysqli_fetch_assoc($siswa_result)): ?>
                            <option value="<?= $siswa['id_siswa'] ?>" 
                                    <?= (isset($_POST['id_siswa']) && $_POST['id_siswa'] == $siswa['id_siswa']) ? 'selected' : '' ?>>
                                <?= htmlspecialchars($siswa['nama']) ?> (NIS: <?= $siswa['nis'] ?>) - Kelas: <?= $siswa['nama_kelas'] ?: '-' ?>
                            </option>
                        <?php endwhile; ?>
                    </select>
                </div>

                <!-- Pilih Guru BK -->
                <div class="mb-6">
                    <label class="block text-sm font-medium text-gray-700 mb-2">
                        <i class="fas fa-chalkboard-teacher text-blue-600 mr-2"></i>
                        Guru BK <span class="text-red-500">*</span>
                    </label>
                    <select name="id_guru_bk" 
                            class="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-blue-600 focus:border-transparent outline-none transition bg-gray-50"
                            required>
                        <option value="">-- Pilih Guru BK --</option>
                        <?php while($guru = mysqli_fetch_assoc($guru_result)): ?>
                            <option value="<?= $guru['id_guru'] ?>" 
                                    <?= (isset($_POST['id_guru_bk']) && $_POST['id_guru_bk'] == $guru['id_guru']) ? 'selected' : '' ?>>
                                <?= htmlspecialchars($guru['nama_guru']) ?>
                            </option>
                        <?php endwhile; ?>
                    </select>
                </div>

                <!-- Tanggal dan Jam -->
                <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6">
                    <div>
                        <label class="block text-sm font-medium text-gray-700 mb-2">
                            <i class="fas fa-calendar-alt text-blue-600 mr-2"></i>
                            Tanggal Konseling <span class="text-red-500">*</span>
                        </label>
                        <input type="date" 
                               name="tanggal" 
                               class="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-blue-600 focus:border-transparent outline-none transition bg-gray-50"
                               value="<?= isset($_POST['tanggal']) ? $_POST['tanggal'] : date('Y-m-d') ?>"
                               min="<?= date('Y-m-d') ?>"
                               required>
                    </div>
                    <div>
                        <label class="block text-sm font-medium text-gray-700 mb-2">
                            <i class="fas fa-clock text-blue-600 mr-2"></i>
                            Jam Konseling <span class="text-red-500">*</span>
                        </label>
                        <input type="time" 
                               name="jam" 
                               class="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-blue-600 focus:border-transparent outline-none transition bg-gray-50"
                               value="<?= isset($_POST['jam']) ? $_POST['jam'] : '' ?>"
                               required>
                    </div>
                </div>

                <!-- Keterangan -->
                <div class="mb-6">
                    <label class="block text-sm font-medium text-gray-700 mb-2">
                        <i class="fas fa-sticky-note text-blue-600 mr-2"></i>
                        Keterangan
                    </label>
                    <textarea name="keterangan" 
                              rows="4" 
                              class="w-full px-4 py-3 border border-gray-300 rounded-xl focus:ring-2 focus:ring-blue-600 focus:border-transparent outline-none transition bg-gray-50"
                              placeholder="Tambahkan keterangan jika diperlukan (misal: ruangan, topik konseling, dll)"><?= isset($_POST['keterangan']) ? htmlspecialchars($_POST['keterangan']) : '' ?></textarea>
                </div>

                <!-- Informasi Tambahan -->
                <div class="mb-8 bg-yellow-50 p-4 rounded-xl">
                    <div class="flex items-start">
                        <i class="fas fa-lightbulb text-yellow-600 mt-1 mr-3"></i>
                        <div>
                            <p class="text-sm font-medium text-yellow-800">Informasi Penting:</p>
                            <ul class="text-xs text-yellow-700 mt-2 list-disc list-inside">
                                <li>Status awal jadwal adalah "Diajukan" dan akan dikonfirmasi oleh Guru BK</li>
                                <li>Pastikan tidak ada jadwal yang bentrok dengan guru BK yang sama</li>
                                <li>Notifikasi akan dikirim ke Guru BK dan siswa terkait</li>
                                <li>Konseling dapat dilakukan setelah jadwal disetujui</li>
                            </ul>
                        </div>
                    </div>
                </div>

                <!-- Tombol -->
                <div class="flex justify-end space-x-3">
                    <a href="index.php" class="px-6 py-3 border border-gray-300 text-gray-700 rounded-xl hover:bg-gray-50 transition text-sm">
                        <i class="fas fa-times mr-2"></i>Batal
                    </a>
                    <button type="submit" class="bg-blue-600 text-white px-6 py-3 rounded-xl hover:bg-blue-700 transition text-sm flex items-center">
                        <i class="fas fa-save mr-2"></i>Simpan Jadwal
                    </button>
                </div>
            </form>
        </div>
    </div>
</main>

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
    // Validasi form
    $('#tambahForm').on('submit', function(e) {
        let id_siswa = $('select[name="id_siswa"]').val();
        let id_guru_bk = $('select[name="id_guru_bk"]').val();
        let tanggal = $('input[name="tanggal"]').val();
        let jam = $('input[name="jam"]').val();
        let errors = [];
        
        if (!id_siswa) {
            errors.push('Siswa harus dipilih');
            $('select[name="id_siswa"]').addClass('border-red-500');
        } else {
            $('select[name="id_siswa"]').removeClass('border-red-500');
        }
        
        if (!id_guru_bk) {
            errors.push('Guru BK harus dipilih');
            $('select[name="id_guru_bk"]').addClass('border-red-500');
        } else {
            $('select[name="id_guru_bk"]').removeClass('border-red-500');
        }
        
        if (!tanggal) {
            errors.push('Tanggal konseling harus diisi');
            $('input[name="tanggal"]').addClass('border-red-500');
        } else {
            $('input[name="tanggal"]').removeClass('border-red-500');
        }
        
        if (!jam) {
            errors.push('Jam konseling harus diisi');
            $('input[name="jam"]').addClass('border-red-500');
        } else {
            $('input[name="jam"]').removeClass('border-red-500');
        }
        
        if (errors.length > 0) {
            e.preventDefault();
            alert('Validasi Gagal:\n- ' + errors.join('\n- '));
        }
    });
    
    // Hapus border merah saat input berubah
    $('select[name="id_siswa"], select[name="id_guru_bk"], input[name="tanggal"], input[name="jam"]').on('change input', function() {
        if ($(this).val()) {
            $(this).removeClass('border-red-500');
        }
    });
});
</script>

<?php include '../../includes/footer.php'; ?>