<?php
session_start(); // Pastikan sesi dimulai

// Untuk debugging (opsional, hapus di produksi)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Sertakan file koneksi database
require_once '../api/db_connect.php';

$jadwal_posyandu = []; // Array untuk menyimpan data jadwal
$error_message = null; // Inisialisasi pesan error
$user_desa = null; // Inisialisasi variabel desa pengguna

// Cek apakah user sudah login
if (!isset($_SESSION['user_id'])) {
    $error_message = "Anda harus login untuk melihat jadwal posyandu.";
} else {
    $user_id = $_SESSION['user_id'];

    try {
        // 1. Ambil desa (village) pengguna yang sedang login dari tabel users
        $stmt_user_desa = $pdo->prepare("SELECT village FROM users WHERE id = :user_id");
        $stmt_user_desa->bindParam(':user_id', $user_id, PDO::PARAM_INT);
        $stmt_user_desa->execute();
        $user_data = $stmt_user_desa->fetch(PDO::FETCH_ASSOC);

        if ($user_data && !empty($user_data['village'])) {
            $user_desa = $user_data['village']; // Menggunakan 'village' dari database

            // Tentukan rentang tanggal untuk seminggu ke depan
            $today = date('Y-m-d');
            $next_week = date('Y-m-d', strtotime('+7 days'));

            // 2. Ambil data jadwal posyandu berdasarkan desa pengguna dan dalam seminggu ke depan
            $stmt_jadwal = $pdo->prepare("
                SELECT
                    id,
                    nama_posyandu,
                    desa, -- Ini kolom di tabel jadwal_posyandu
                    tanggal_mulai,
                    tanggal_selesai,
                    waktu_mulai,
                    waktu_selesai,
                    lokasi_detail
                FROM
                    jadwal_posyandu
                WHERE
                    desa = :user_desa
                    AND tanggal_mulai BETWEEN :today AND :next_week
                ORDER BY
                    tanggal_mulai ASC, waktu_mulai ASC
            ");
            $stmt_jadwal->bindParam(':user_desa', $user_desa, PDO::PARAM_STR);
            $stmt_jadwal->bindParam(':today', $today, PDO::PARAM_STR);
            $stmt_jadwal->bindParam(':next_week', $next_week, PDO::PARAM_STR);
            $stmt_jadwal->execute();
            $jadwal_posyandu = $stmt_jadwal->fetchAll(PDO::FETCH_ASSOC);

        } else {
            $error_message = "Informasi desa (village) Anda tidak ditemukan atau kosong. Silakan perbarui profil Anda.";
        }

    } catch (PDOException $e) {
        error_log("Error fetching jadwal posyandu or user village: " . $e->getMessage(), 0);
        $error_message = "Gagal memuat jadwal posyandu. Silakan coba lagi. Error: " . $e->getMessage();
    }
}


// Fungsi pembantu untuk format tanggal dan waktu
function formatJadwalDateTime($mulai, $selesai_tgl, $mulai_waktu, $selesai_waktu) {
    $date_mulai = new DateTime($mulai);
    $date_selesai_tgl = $selesai_tgl ? new DateTime($selesai_tgl) : null;
    $time_mulai = new DateTime($mulai_waktu);
    $time_selesai = new DateTime($selesai_waktu);

    $formatted_date_mulai = $date_mulai->format('d F Y'); // Contoh: 15 Juni 2025
    $formatted_time = $time_mulai->format('H:i') . ' - ' . $time_selesai->format('H:i') . ' WIB';

    if ($date_selesai_tgl && $date_mulai->format('Y-m-d') !== $date_selesai_tgl->format('Y-m-d')) {
        // Jika rentang tanggal
        return $date_mulai->format('d M') . ' - ' . $date_selesai_tgl->format('d M Y') . ', ' . $formatted_time;
    } else {
        // Jika hanya satu hari atau tanggal sama
        return $formatted_date_mulai . ', ' . $formatted_time;
    }
}

// Kelompokkan jadwal berdasarkan nama_posyandu dan desa
$grouped_jadwal = [];
foreach ($jadwal_posyandu as $jadwal) {
    $key = $jadwal['nama_posyandu'] . ' - Desa ' . $jadwal['desa']; // Menggunakan 'desa' dari tabel jadwal_posyandu
    if (!isset($grouped_jadwal[$key])) {
        $grouped_jadwal[$key] = [
            'nama_posyandu' => $jadwal['nama_posyandu'],
            'desa' => $jadwal['desa'], // Menggunakan 'desa' dari tabel jadwal_posyandu
            'items' => []
        ];
    }
    $grouped_jadwal[$key]['items'][] = $jadwal;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Jadwal Posyandu</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
    
    <link href="https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css" rel="stylesheet">
    
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    <link href='https://unpkg.com/boxicons@2.1.2/css/boxicons.min.css' rel='stylesheet'>

    <link rel="stylesheet" href="../css/style.css">

    <style>
        .no-schedule-message {
            text-align: center;
            padding: 30px 15px;
            background-color: #f8f9fa;
            border-radius: 8px;
            margin-top: 30px;
        }
        .no-schedule-message img {
            max-width: 150px; /* Sesuaikan ukuran gambar */
            height: auto;
            margin-bottom: 20px;
            opacity: 0.8;
        }
        .no-schedule-message p {
            font-size: 0.8em;
            color: #6c757d;
        }
        .no-schedule-message h5 {
            color: #495057;
            margin-bottom: 10px;
        }
    </style>
</head>
<body>

    <header class="page-header">
        <h1>Jadwal Posyandu</h1>
    </header>

    <div class="main-content-area schedule-page">
        <?php if ($error_message): ?>
            <p class="alert alert-danger text-center"><?php echo $error_message; ?></p>
        <?php elseif ($user_desa === null): ?>
            <p class="alert alert-warning text-center">Tidak dapat menemukan informasi desa (village) Anda. Silakan perbarui profil Anda.</p>
        <?php elseif (empty($grouped_jadwal)): ?>
            <div class="no-schedule-message">
                <img src="../images/opss.png" alt="Tidak ada jadwal">
                <h5>Oops! Belum Ada Jadwal Posyandu</h5>
                <p>Belum ada jadwal posyandu yang tersedia untuk desa Anda (<?php echo htmlspecialchars($user_desa); ?>) dalam seminggu ke depan.</p>
                <p>Silakan periksa kembali nanti atau hubungi petugas posyandu setempat.</p>
            </div>
        <?php else: ?>
            <?php foreach ($grouped_jadwal as $key => $group): ?>
                <div class="schedule-card">
                    <h4><?php echo htmlspecialchars($group['nama_posyandu']); ?> - Desa <?php echo htmlspecialchars($group['desa']); ?></h4>
                    <?php foreach ($group['items'] as $item): ?>
                        <div class="schedule-item">
                            <i class='bx bx-calendar schedule-icon'></i>
                            <div class="schedule-details">
                                <span class="date-time">
                                    <?php echo formatJadwalDateTime(
                                        $item['tanggal_mulai'],
                                        $item['tanggal_selesai'],
                                        $item['waktu_mulai'],
                                        $item['waktu_selesai']
                                    ); ?>
                                </span>
                                <p class="location"><i class='bx bx-map'></i> <?php echo htmlspecialchars($item['lokasi_detail']); ?></p>
                            </div>
                        </div>
                    <?php endforeach; ?>
                </div>
            <?php endforeach; ?>
        <?php endif; ?>
    </div>

    <nav class="nav1">
        <ul class="nav-content1">
            <li class="nav-list1">
                <a href="../" class="link-item1"> <i class='bx bx-home-alt link-icon1'></i> <span class="link-text1">Beranda</span>
                </a>
            </li>
            <li class="nav-list1">
                <a href="../dataperkembangan/" class="link-item1">
                    <i class='bx bx-category link-icon1'></i> <span class="link-text1">Fitur</span>
                </a>
            </li>
            <li class="nav-list1">
                <a href="../jadwalposyandu/" class="link-item1 active1">
                    <i class='bx bx-chart link-icon1'></i> <span class="link-text1">Jadwal Posyandu</span>
                </a>
            </li>
            <li class="nav-list1">
                <a href="../laporkehamilan/" class="link-item1">
                    <i class='bx bx-chat link-icon1'></i> <span class="link-text1">Lapor Kehamilan</span>
                </a>
            </li>
            <li class="nav-list1">
                <a href="../profil/" class="link-item1">
                    <i class='bx bx-user-circle link-icon1'></i> <span class="link-text1">Profil</span>
                </a>
            </li>
        </ul>
    </nav>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
    <script src="../js/script.js"></script>
</body>
</html>