<?php
// Fail ini tidak akan memaparkan apa-apa. Ia hanya berfungsi di latar belakang.
require_once __DIR__.'/inc/config.php';
require_once __DIR__.'/inc/db.php';
require_once __DIR__.'/inc/helpers.php';
require_once __DIR__.'/inc/http.php';

// Dapatkan ID Pesanan. Pastikan ia adalah nombor untuk keselamatan.

// Logik baru untuk mendapatkan ID Pesanan
// Ia akan cuba dapatkan dari skrip yang memanggilnya (cth: upsell.php)
// Jika tiada, barulah ia akan cuba dapatkan dari URL (untuk panggilan dari popup)
if (!isset($id)) {
    $id = (int)($_GET['order_id'] ?? 0);
}

if (empty($id)) {
    // Hantar respons yang lebih jelas untuk tujuan diagnostik
    http_response_code(400);
    exit('ID Pesanan tidak sah atau tidak dijumpai.');
}

// Dapatkan butiran pesanan dari pangkalan data
$st = db()->prepare("SELECT * FROM orders WHERE id=?");
$st->execute([$id]);
$o = $st->fetch();

// Hanya hantar jika pesanan wujud DAN notifikasi belum pernah dihantar
// Logik baru:
// 1. Jika bayaran manual, hantar notifikasi tanpa kira flag `notification_sent`. Ini kerana panggilannya adalah dari upload_proof.php.
// 2. Jika bayaran lain, kekalkan logik asal yang menyemak flag `notification_sent`.

$should_send = false;
if ($o) {
    if ($o['payment_method'] === 'Manual') {
        $should_send = true; // Untuk bayaran manual, sentiasa hantar selepas upload bukti
    } elseif ($o['notification_sent'] == 0) {
        $should_send = true; // Untuk bayaran lain, hanya hantar jika flag = 0
    }
}

if ($should_send) {
    // Hantar notifikasi kepada Pelanggan
    if (setting('WHATSAPP_NOTIF_CUSTOMER_ENABLED') == '1') {
        $customer_template = setting('WHATSAPP_NOTIF_CUSTOMER_TEMPLATE');
        $customer_message = str_replace(
            ['{nama}', '{id_pesanan}', '{jumlah}'],
            [$o['name'], $o['id'], money($o['amount'])],
            $customer_template
        );
        send_whatsapp($o['phone'], $customer_message);
    }

// Hantar notifikasi kepada Admin
if (setting('WHATSAPP_NOTIF_ADMIN_ENABLED') == '1') {
    $admin_phone_string = setting('ADMIN_PHONE');
    if ($admin_phone_string) {
        $admin_template = setting('WHATSAPP_NOTIF_ADMIN_TEMPLATE');
        $admin_message = str_replace(
            ['{id_pesanan}', '{nama}', '{telefon}', '{pakej}', '{jumlah}', '{cara_bayaran}', '{alamat}'],
            [$o['id'], $o['name'], $o['phone'], $o['package_name'], money($o['amount']), $o['payment_method'], $o['address']],
            $admin_template
        );

        // BARU: Pecahkan nombor telefon menggunakan koma dan hantar satu per satu
        $admin_phones = explode(',', $admin_phone_string);
        foreach ($admin_phones as $phone) {
            if (trim($phone)) { // Pastikan nombor tidak kosong
                send_whatsapp(trim($phone), $admin_message);
            }
        }
    }
}

    // Tandakan bahawa notifikasi telah dihantar
    db()->prepare("UPDATE orders SET notification_sent = 1 WHERE id = ?")->execute([$o['id']]);
}
