<?php
session_start();
// Sesuaikan path koneksi Anda
include '../api/db_connect.php'; // Pastikan path ini benar dan $pdo terinisialisasi

// --- LOGIKA VALIDASI AWAL ---
// Cek apakah user sudah login
if (!isset($_SESSION['user_id']) || !isset($_SESSION['user_nik'])) { // <<< Pastikan NIK juga ada di sesi
    // Jika belum login atau NIK tidak ada di sesi, redirect ke halaman login
    header("Location: ../auth/login.php");
    exit();
}

$user_id = $_SESSION['user_id'];
$user_nik = $_SESSION['user_nik']; // <<< Ambil NIK dari sesi

// Periksa apakah user sudah memiliki laporan kehamilan dengan NIK dan status 'aktif'
// Periksa apakah user sudah memiliki laporan kehamilan dengan kondisi tertentu
if (isset($pdo) && ($pdo instanceof PDO)) {
    try {
        // Ambil data laporan kehamilan terbaru berdasarkan NIK
        // Kita tidak lagi menghitung COUNT(*), melainkan mengambil detail laporan terbaru
        $stmt = $pdo->prepare("
            SELECT id, verif, status, tanggal_lapor
            FROM laporan_kehamilan
            WHERE nik = :nik
            ORDER BY tanggal_lapor DESC
            LIMIT 1
        ");
        $stmt->bindParam(':nik', $user_nik, PDO::PARAM_STR); // Bind NIK sebagai string
        $stmt->execute();
        $latest_report = $stmt->fetch(PDO::FETCH_ASSOC); // Ambil satu baris hasil

        // Logika baru: Redirect ke halaman status jika ada laporan terbaru
        // DAN statusnya 'aktif' ATAU NULL ATAU KOSONG
        if ($latest_report && ($latest_report['status'] === 'aktif' || $latest_report['status'] === null || $latest_report['status'] === '')) {
            // Jika kondisi terpenuhi, redirect ke halaman status
            header("Location: status/");
            exit(); // Penting: selalu panggil exit() setelah header()
        }
    } catch (PDOException $e) {
        // Log error, tapi biarkan user melanjutkan untuk lapor jika ada masalah DB saat cek
        error_log("Error checking existing active pregnancy report by NIK: " . $e->getMessage());
        // Opsional: tampilkan pesan error kepada user
        $error_message_validation = "Terjadi masalah saat memverifikasi laporan sebelumnya. Silakan coba lagi.";
    }
} else {
    // Handle case where $pdo is not correctly initialized
    $error_message_validation = "Koneksi database gagal dimuat. Tidak dapat memverifikasi laporan sebelumnya.";
}
// --- AKHIR LOGIKA VALIDASI AWAL ---


// Data profil pengguna (jika user_id valid dan tidak direk)
$userProfile = null;
$error_message_profile = '';

if (isset($pdo) && ($pdo instanceof PDO)) {
    try {
        // Jika Anda ingin mengambil data profil berdasarkan NIK,
        // ubah query ini juga. Tapi jika 'id' adalah primary key,
        // menggunakan id mungkin lebih efisien.
        // Saya asumsikan Anda ingin mengambil data profil user yang login berdasarkan ID sesi.
        $stmt = $pdo->prepare("SELECT full_name, nik, address, village, rt, rw, coordinates FROM users WHERE id = :user_id");
        $stmt->bindParam(':user_id', $user_id); // Tetap gunakan user_id dari sesi untuk profil
        $stmt->execute();
        $userProfile = $stmt->fetch(PDO::FETCH_ASSOC);

        // Jika userProfile ditemukan, pastikan data NIK di profil cocok dengan sesi
        // atau gunakan NIK dari profil jika sesi_NIK kosong/tidak valid
        if ($userProfile && !empty($userProfile['nik']) && (empty($user_nik) || $user_nik !== $userProfile['nik'])) {
            // Jika NIK di sesi tidak ada atau berbeda dengan yang di database,
            // perbarui NIK di sesi (ini bisa jadi fallback jika sesi NIK somehow hilang)
            $_SESSION['user_nik'] = $userProfile['nik'];
            $user_nik = $_SESSION['user_nik'];
        }

    } catch (PDOException $e) {
        error_log("Error fetching user profile for pregnancy report: " . $e->getMessage());
        $userProfile = null;
        $error_message_profile = "Gagal memuat data profil: " . $e->getMessage();
    }
} else {
    $error_message_profile = "Koneksi database gagal dimuat. Tidak dapat memuat profil pengguna.";
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Aplikasi Kesehatan</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 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/6.0.0-beta3/css/all.min.css">
    
    <link rel="stylesheet" href="../css/style.css">
</head>
<body>

    <header class="page-header">
        <a href="index.php" class="back-btn"><i class="fas fa-arrow-left"></i></a>
        <h1>Lapor Kehamilan</h1>
    </header>

    <main class="main-content-area form-page">
        <div class="form-container">
            <form id="laporKehamilanForm">
                <div class="form-group">
                    <label for="hpht">HPHT (Hari Pertama Haid Terakhir)</label>
                    <input type="date" id="hpht" name="hpht" class="form-control" required>
                </div>

                <div class="form-group">
                    <label for="hariTidakHaid">Sudah berapa hari tidak haid?</label>
                    <input type="number" id="hariTidakHaid" name="hariTidakHaid" min="0" class="form-control" required>
                </div>

                <div class="form-group">
                    <label>Ada bukti kehamilan?</label>
                    <div class="form-check radio-group">
                        <input class="form-check-input" type="radio" id="buktiYa" name="adaBukti" value="ya" required>
                        <label class="form-check-label" for="buktiYa">Ya (Test Pack / Pemeriksaan Dokter)</label>
                    </div>
                    <div class="form-check radio-group">
                        <input class="form-check-input" type="radio" id="buktiTidak" name="adaBukti" value="tidak">
                        <label class="form-check-label" for="buktiTidak">Tidak</label>
                    </div>
                </div>

                <div id="uploadFotoContainer" class="form-group" style="display: none;">
                    <label for="buktiFoto">Upload Bukti Foto (Test Pack / Hasil USG)</label>
                    <input type="file" id="buktiFoto" name="buktiFoto" accept="image/*" class="form-control">
                    <p class="file-info">Ukuran maksimal 5MB, format JPG, PNG.</p>
                </div>

                <button type="submit" class="submit-btn">Kirim</button>
            </form>
        </div>
    </main>

    <div class="modal fade" id="agreementModal" tabindex="-1" aria-labelledby="agreementModalLabel" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="agreementModalLabel">Persetujuan Syarat & Ketentuan</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <p>Dengan menekan tombol "Setuju", Anda menyetujui bahwa data yang Anda berikan adalah benar dan dapat digunakan untuk keperluan layanan kesehatan yang relevan. Data Anda akan dijaga kerahasiaannya sesuai kebijakan privasi kami.</p>
                    <ul>
                        <li>Data yang dimasukkan adalah tanggung jawab pengguna.</li>
                        <li>Penyalahgunaan data bukan tanggung jawab penyedia layanan.</li>
                        <li>Pengguna setuju untuk mengikuti semua aturan dan kebijakan privasi.</li>
                    </ul>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
                    <button type="button" class="btn btn-primary" id="agreeBtnBootstrap">Setuju</button>
                </div>
            </div>
        </div>
    </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">
                <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 active1">
                <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>
        document.addEventListener('DOMContentLoaded', function() {
            // Get references to HTML elements
            const hphtInput = document.getElementById('hpht');
            const hariTidakHaidInput = document.getElementById('hariTidakHaid');
            const buktiYaRadio = document.getElementById('buktiYa');
            const buktiTidakRadio = document.getElementById('buktiTidak');
            const uploadFotoContainer = document.getElementById('uploadFotoContainer');
            const buktiFotoInput = document.getElementById('buktiFoto');
            const laporKehamilanForm = document.getElementById('laporKehamilanForm');
            
            // Initialize Bootstrap Modal
            const agreementModal = new bootstrap.Modal(document.getElementById('agreementModal'));
            const agreeBtnBootstrap = document.getElementById('agreeBtnBootstrap');

            // Function to toggle photo upload container visibility
            function toggleUploadFoto() {
                if (buktiYaRadio.checked) {
                    uploadFotoContainer.style.display = 'block';
                    buktiFotoInput.setAttribute('required', 'required'); // Make photo required if 'ya'
                } else {
                    uploadFotoContainer.style.display = 'none';
                    buktiFotoInput.removeAttribute('required');
                    buktiFotoInput.value = ''; // Clear file input if "Tidak"
                }
            }

            // Event listeners for radio buttons to toggle upload photo
            buktiYaRadio.addEventListener('change', toggleUploadFoto);
            buktiTidakRadio.addEventListener('change', toggleUploadFoto);

            // Initial check for display when page loads
            toggleUploadFoto();

            // Calculate "Hari Tidak Haid" automatically when HPHT date changes
            hphtInput.addEventListener('change', function() {
                if (hphtInput.value) {
                    const hphtDate = new Date(hphtInput.value);
                    const today = new Date();
                    // Calculate difference in milliseconds, then convert to days
                    const diffTime = Math.abs(today - hphtDate); 
                    const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); 
                    hariTidakHaidInput.value = diffDays;
                } else {
                    hariTidakHaidInput.value = ''; // Clear if HPHT is empty
                }
            });

            // Handle form submission: show agreement modal first
            laporKehamilanForm.addEventListener('submit', function(event) {
                event.preventDefault(); // Prevent default form submission (page reload)
                agreementModal.show(); // Display the agreement modal
            });

            // Handle "Setuju" button click in the modal
            agreeBtnBootstrap.addEventListener('click', function() {
                agreementModal.hide(); // Hide the modal

                // Create FormData object from the form (handles file uploads)
                const formData = new FormData(laporKehamilanForm);

                // Send data to PHP backend using Fetch API
                // Path is relative to laporankehamilan/index.php
                fetch('../api/submit_laporan_kehamilan.php', { 
                    method: 'POST',
                    body: formData
                })
                .then(response => {
                    // Check if the response is valid JSON
                    const contentType = response.headers.get("content-type");
                    if (contentType && contentType.indexOf("application/json") !== -1) {
                        return response.json();
                    } else {
                        // If not JSON, handle as plain text or log the raw response
                        console.error('Expected JSON response, but received:', response.text());
                        throw new Error('Server did not return a valid JSON response.');
                    }
                })
                    .then(data => {
                    if (data.status === 'success') {
                        alert(data.message);
                        laporKehamilanForm.reset(); // Clear form fields
                        toggleUploadFoto(); // Reset photo upload container visibility
                        
                        // <<< TAMBAHKAN KODE REDIRECT DI SINI
                        window.location.href = 'status/'; // Atau '/index.php', sesuaikan dengan struktur folder Anda
                                                   // Jika Anda ingin ke halaman 'perkembanganjanin', gunakan 'perkembanganjanin/'
                        // >>>

                    } else {
                        alert('Error: ' + data.message); // Show error message from PHP
                    }
                })
                .catch(error => {
                    console.error('Fetch Error:', error); // Log any network or parsing errors
                    alert('Terjadi kesalahan saat mengirim data. Silakan coba lagi. (Detail error di console browser)');
                });
            });
        });
    </script>
</body>
</html>