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

// Untuk debugging (opsional, HINDARI DI LINGKUNGAN PRODUKSI)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Sertakan file koneksi database
// Sesuaikan path jika file ini tidak di root folder atau jika struktur folder berubah
require_once 'api/db_connect.php';

// REDIRECT KE HALAMAN LOGIN JIKA BELUM ADA SESSION USER_ID
if (!isset($_SESSION['user_id'])) {
    header('Location: auth/login.php'); // Ganti 'login.php' dengan path ke halaman login Anda
    exit();
}

$username = "Tamu"; // Default username jika belum login (seharusnya tidak tercapai jika redirect berhasil)
$usia_kehamilan_minggu = null;
$perkembangan_saat_ini = null;
$hpht_ditemukan_dan_terverifikasi = false; // Flag untuk status laporan terverifikasi
$laporan_hpht_belum_verifikasi = false;    // Flag untuk status laporan belum verifikasi

$nik_kosong = false;
$tampilkan_modal_lapor_kehamilan = false; // Flag untuk mengontrol tampilan modal lapor kehamilan

// Cek apakah user sudah login (bagian ini akan selalu benar karena sudah ada redirect di atas)
if (isset($_SESSION['user_id'])) {
    $user_id = $_SESSION['user_id'];
    $user_nik_from_db = null; // Variabel untuk menyimpan NIK dari database user

    try {
        // Ambil nama pengguna (full_name) DAN NIK dari tabel users
        $stmt_user = $pdo->prepare("SELECT full_name, nik FROM users WHERE id = :user_id");
        $stmt_user->bindParam(':user_id', $user_id, PDO::PARAM_INT);
        $stmt_user->execute();
        $user_data = $stmt_user->fetch(PDO::FETCH_ASSOC);

        if ($user_data) {
            // Set username dari full_name
            if (!empty($user_data['full_name'])) {
                $username = htmlspecialchars($user_data['full_name']);
            } else {
                $username = "Pengguna Tidak Dikenal"; // Jika full_name kosong
            }

            // Cek apakah NIK kosong dari data user
            $user_nik_from_db = $user_data['nik'];
            if (empty($user_nik_from_db)) {
                $nik_kosong = true;
            }
        } else {
            $username = "Pengguna Tidak Ditemukan";
        }

        // --- Logika Penentuan Modal ---
        // Jika NIK kosong, kita tidak perlu cek laporan kehamilan, langsung tampilkan nikModal.
        // Jika NIK tidak kosong, baru cek laporan kehamilan.
        if (!$nik_kosong) {
            // Ambil laporan kehamilan terbaru berdasarkan NIK
            $stmt_latest_report = $pdo->prepare("
                SELECT hpht, verif, status, tanggal_lapor
                FROM laporan_kehamilan
                WHERE nik = :nik
                ORDER BY tanggal_lapor DESC
                LIMIT 1
            ");
            $stmt_latest_report->bindParam(':nik', $user_nik_from_db, PDO::PARAM_STR);
            $stmt_latest_report->execute();
            $latest_pregnancy_report = $stmt_latest_report->fetch(PDO::FETCH_ASSOC);

            // Logika untuk menampilkan modal "Lapor Kehamilan"
            // Kondisi: Jika TIDAK ADA laporan kehamilan
            // ATAU ADA laporan, tapi statusnya BUKAN 'aktif' DAN BUKAN NULL DAN BUKAN KOSONG
            if (!$latest_pregnancy_report ||
                (isset($latest_pregnancy_report['status']) &&
                   $latest_pregnancy_report['status'] !== 'aktif' &&
                   $latest_pregnancy_report['status'] !== null &&
                   $latest_pregnancy_report['status'] !== '')
            ) {
                $tampilkan_modal_lapor_kehamilan = true;
            }

            // Lanjutkan logika perhitungan usia kehamilan dan perkembangan janin
            // berdasarkan laporan terbaru (jika ada dan terverifikasi)
            if ($latest_pregnancy_report) {
                if (!empty($latest_pregnancy_report['hpht'])) {
                    if (isset($latest_pregnancy_report['verif']) && $latest_pregnancy_report['verif'] == '1') {
                        $hpht_ditemukan_dan_terverifikasi = true;
                        $tanggal_hpht_str = $latest_pregnancy_report['hpht'];
                        $tanggal_hpht = new DateTime($tanggal_hpht_str);
                        $tanggal_sekarang = new DateTime();

                        $interval = $tanggal_hpht->diff($tanggal_sekarang);
                        $jumlah_hari = $interval->days;
                        $usia_kehamilan_minggu = floor($jumlah_hari / 7);

                        if ($usia_kehamilan_minggu > 40) {
                            $usia_kehamilan_minggu = 40;
                        } elseif ($usia_kehamilan_minggu < 1) {
                            $usia_kehamilan_minggu = 1;
                        }

                        $stmt_perkembangan = $pdo->prepare("
                            SELECT
                                minggu_ke, fase_perkembangan, ukuran_janin, berat_janin,
                                deskripsi_utama, catatan_penting
                            FROM
                                perkembangan_janin
                            WHERE
                                minggu_ke = :minggu_ke
                        ");
                        $stmt_perkembangan->bindParam(':minggu_ke', $usia_kehamilan_minggu, PDO::PARAM_INT);
                        $stmt_perkembangan->execute();
                        $perkembangan_saat_ini = $stmt_perkembangan->fetch(PDO::FETCH_ASSOC);

                    } else {
                        $laporan_hpht_belum_verifikasi = true;
                    }
                }
            }

        } // End if (!$nik_kosong)

    } catch (PDOException $e) {
        error_log("Error fetching user or pregnancy data: " . $e->getMessage(), 0);
        $username = "Error Memuat Nama";
        // Anda bisa menambahkan pesan error yang lebih user-friendly di sini
    }
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Beranda - Posyandu</title>

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

    <link href='https://unpkg.com/boxicons@2.1.2/css/boxicons.min.css' rel='stylesheet'>

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">

</head>
<body>
    
<header class="main-header">
    <div class="header-left">
        <div class="profile-icon">
            <i class="fas fa-user-circle"></i>
        </div>
        <div class="user-info">
            <p>Halo, <span id="username"><?php echo $username; ?></span></p>
            <p class="verified-profile">
                Profil Terverifikasi
                <i class="fas fa-sync-alt refresh-icon"></i>
            </p>
        </div>
    </div>
    <div class="header-right">
        <i class="fas fa-qrcode"></i>
        <i class="far fa-envelope"></i>
    </div>
</header>

<main class="main-content-area">
    <section class="hero-card2">
        <div class="card-content">
            <h2>Usia Kehamilan</h2>
            <?php if ($hpht_ditemukan_dan_terverifikasi && $perkembangan_saat_ini): ?>
                <h3><?php echo htmlspecialchars($usia_kehamilan_minggu); ?> Minggu</h3>
                <p>
                    Dalam usia ini janin sudah sebesar <?php echo htmlspecialchars($perkembangan_saat_ini['ukuran_janin']); ?>
                    dengan berat <?php echo htmlspecialchars($perkembangan_saat_ini['berat_janin']); ?>.
                    <?php echo htmlspecialchars($perkembangan_saat_ini['deskripsi_utama']); ?>
                </p>
            <?php elseif ($laporan_hpht_belum_verifikasi): ?>
                <h3>Laporan Kehamilan Menunggu Verifikasi</h3>
                <p>Data perkembangan janin akan tampil setelah laporan HPHT Anda diverifikasi oleh petugas.</p>
                <button class="lihat-rapor-btn" onclick="window.location.href='laporkehamilan/status/'">Status Verifikasi</button>
            <?php else: ?>
                <h3>Informasi Kehamilan Belum Dilaporkan</h3>
                <p>Silakan laporkan data kehamilan Anda (HPHT) untuk melihat perkembangan janin.</p>
                <button class="lihat-rapor-btn" onclick="window.location.href='laporkehamilan/'">Lapor Kehamilan</button>
            <?php endif; ?>

            <?php if ($hpht_ditemukan_dan_terverifikasi): ?>
                <button class="lihat-rapor-btn" onclick="window.location.href='perkembanganjanin/'">Lihat Rapor</button>
            <?php endif; ?>
        </div>
    </section>

<section class="function-cards-container">
    <div class="function-card">
        <a href="dataperkembangan/" class="icon-link"> <div class="card-icon-wrapper green">
                <i class="fas fa-file-medical"></i>
            </div>
        </a> <p>Resume Medis</p>
    </div>
    <div class="function-card">
        <a href="jadwalposyandu/" class="icon-link"> <div class="card-icon-wrapper blue">
                <i class="fas fa-shield-alt"></i>
            </div>
        </a> <p>Jadwal Posyandu</p>
    </div>
</section>
</main>

<nav class="nav1">
    <ul class="nav-content1">
        <li class="nav-list1">
            <a href="#" class="link-item1  active1"> <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">
                <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>

<div class="modal fade" id="nikModal" tabindex="-1" aria-labelledby="nikModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="nikModalLabel">Lengkapi Profil Anda</h5>
            </div>
            <div class="modal-body text-center">
                <p>Mohon segera melengkapi data NIK dan profil Anda agar fitur aplikasi dapat berfungsi penuh.</p>
                <i class="fas fa-exclamation-triangle text-warning fa-3x my-3"></i>
            </div>
            <div class="modal-footer justify-content-center">
                <a href="profil/editprofile/" class="btn btn-primary">Lengkapi Profil</a>
            </div>
        </div>
    </div>
</div>

<div class="modal fade" id="laporKehamilanModal" tabindex="-1" aria-labelledby="laporKehamilanModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="laporKehamilanModalLabel">Laporan Kehamilan Anda Belum Ada</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body text-center">
                <p>Silakan laporkan data kehamilan Anda untuk mulai melacak perkembangan janin.</p>
                <i class="fas fa-baby text-info fa-3x my-3"></i>
            </div>
            <div class="modal-footer justify-content-center">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Nanti Saja</button>
                <a href="laporkehamilan/" class="btn btn-primary">Lapor Kehamilan Sekarang</a>
            </div>
        </div>
    </div>
</div>

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

<?php if (isset($_SESSION['user_id'])): // Hanya tampilkan modal jika user sudah login ?>
<script>
    document.addEventListener('DOMContentLoaded', function() {
        <?php if ($nik_kosong): ?>
            var nikModal = new bootstrap.Modal(document.getElementById('nikModal'), {
                backdrop: 'static',
                keyboard: false
            });
            nikModal.show();
        <?php elseif ($tampilkan_modal_lapor_kehamilan): ?>
            // Tampilkan modal lapor kehamilan hanya jika NIK tidak kosong dan flag diizinkan
            var laporKehamilanModal = new bootstrap.Modal(document.getElementById('laporKehamilanModal'), {
                backdrop: 'static',
                keyboard: false
            });
            laporKehamilanModal.show();
        <?php endif; ?>
    });
</script>
<?php endif; ?>

</body>
</html>