<?php 
include "/www/wwwroot/bilspro/config/connect.php";
include "/www/wwwroot/bilspro/config/whatsapp_api.php";

// include "../config/connect.php";
// include "../config/whatsapp_api.php";

// Ambil data dari tabel setting_mikrotik
$stmt = $pdo->prepare("SELECT id, pppa, id_data_server, nama FROM setting_mikrotik ");
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

if ($rows) {
    foreach ($rows as $row) {
        $mik = $row['nama'];
        
        // Kirim Pesan Koneksi Off ke Pelanggan
        // Berdasarkan data server yang mengaktifkan pesan tersebut dan sesuai interval nya

        $stmtSV = $pdo->prepare("SELECT status_koneksi_off, interval_koneksi_off FROM data_server WHERE id = :idserver");
        $stmtSV->bindValue(':idserver', $row['id_data_server']);
        $stmtSV->execute();
        $SV = $stmtSV->fetch(PDO::FETCH_ASSOC);

        if ($SV['status_koneksi_off'] === 'Aktif' && !empty($SV['interval_koneksi_off'])) {
            // Konversi interval koneksi off ke integer
            $intervalMenit = (int)$SV['interval_koneksi_off'];
            
            // Hitung batas waktu berdasarkan interval
            $batasWaktu = date('Y-m-d H:i:s', strtotime("-$intervalMenit minutes"));

            // Siapkan dan eksekusi query untuk mengambil pelanggan
            $stmtInt = $pdo->prepare("SELECT id, id_data_server, nomor_whatsapp FROM pelanggan WHERE pesan_off = '0' AND status = 'aktif' AND id_setting_mikrotik = :id AND time_update < :batasWaktu");
            $stmtInt->bindValue(':id', $row['id']);
            $stmtInt->bindValue(':batasWaktu', $batasWaktu);
            $stmtInt->execute();
            $Intv = $stmtInt->fetchAll(PDO::FETCH_ASSOC);

            if ($Intv) {
                foreach ($Intv as $Val) {
                    $APIwa = new PesanWA();
                    $APIwa->Create_Pesan($Val['id_data_server'], $Val['id'], 'pesan_koneksi_off');
                    $Pesan = $APIwa->Get_Pesan();
                    $APIwa->Send_Pesan($Val['id_data_server'], 'sendMessage', [$Val['nomor_whatsapp']], $Pesan);

                    $stmtInt = $pdo->prepare("UPDATE pelanggan SET pesan_off = '1' WHERE id = :id");
                    $stmtInt->bindValue(':id', $Val['id']);
                    $stmtInt->execute();

                    echo $mik." Pesan ke => ".$Val['nomor_whatsapp']." => ".$batasWaktu."\n";
                }
            } else {
                echo $mik." Data pelanggan tidak ada\n".$batasWaktu;
            }
        } else {
            echo $mik." Status koneksi tidak aktif atau interval tidak tersedia.\n";
        }   
    }
} else {
    echo "No data found.\n";
}

?>