<?php
header('Content-Type: application/json');
include '../config/koneksi.php';
include '../config/id_generator.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $tgl_tutup = isset($_POST['tgl_tutup']) ? $_POST['tgl_tutup'] : '';
    $keterangan = isset($_POST['keterangan_tx']) ? $_POST['keterangan_tx'] : '';

    if (empty($tgl_tutup) || empty($keterangan)) {
        echo json_encode(['status' => 'error', 'pesan' => 'Data tidak lengkap']);
        exit;
    }

    $query_cek = "SELECT COUNT(*) as jumlah FROM dat_reservasi WHERE booking_tgl = '$tgl_tutup' AND reservasi_st NOT IN ('Batal', 'Dibatalkan')";
    $result_cek = mysqli_query($conn, $query_cek);
    $row_cek = mysqli_fetch_assoc($result_cek);
    
    if ($row_cek['jumlah'] > 0) {
        echo json_encode(['status' => 'gagal', 'pesan' => 'Gagal: Terdapat ' . $row_cek['jumlah'] . ' pesanan aktif pada tanggal tersebut!']);
        exit;
    }

    $tutup_id = generateTutupId($conn);
    $stmt = $conn->prepare("INSERT INTO dat_jadwal_tutup (tutup_id, tgl_tutup, keterangan_tx) VALUES (?, ?, ?)");
    $stmt->bind_param("sss", $tutup_id, $tgl_tutup, $keterangan);
    
    if ($stmt->execute()) {
        $stmt->close();
        
        // Broadcast notification to all Pelanggan
        $judul = "Pemberitahuan Tutup ⛔";
        $pesan = "Koneksi Studio akan tutup pada $tgl_tutup ($keterangan). Harap tidak melakukan booking pada tanggal tersebut.";
        $tipe_notif = "sistem";
        
        $query_pelanggan = "SELECT user_id FROM mst_user WHERE role_nm = 'Pelanggan' AND active_st = 1 AND deleted_st = 0";
        $res_pelanggan = $conn->query($query_pelanggan);
        if ($res_pelanggan && $res_pelanggan->num_rows > 0) {
            $stmt_notif = $conn->prepare("INSERT INTO dat_notifikasi (notif_id, user_id, tipe_notif, target_id, judul_tx, pesan_tx) VALUES (?, ?, ?, ?, ?, ?)");
            while ($row_pelanggan = $res_pelanggan->fetch_assoc()) {
                $target_user = $row_pelanggan['user_id'];
                $notif_id = generateNotifId($conn);
                $stmt_notif->bind_param("ssssss", $notif_id, $target_user, $tipe_notif, $tutup_id, $judul, $pesan);
                $stmt_notif->execute();
            }
            $stmt_notif->close();
        }

        echo json_encode(['status' => 'sukses', 'pesan' => 'Jadwal libur berhasil ditambahkan dan diberitahukan ke pelanggan!']);
    } else {
        echo json_encode(['status' => 'gagal', 'pesan' => 'Gagal menambahkan jadwal libur']);
    }
} else {
    echo json_encode(['status' => 'error', 'pesan' => 'Metode tidak valid']);
}
