<?php

/**
 * WhutzUpp Gateway — Contoh Integrasi PHP
 * https://whutzupp.web.id
 *
 * Ganti dua konstanta di bawah dengan key dari dashboard Anda.
 */

define('WA_API_KEY',    'API_KEY_ANDA');
define('WA_NUMBER_KEY', 'NUMBER_KEY_ANDA');
define('WA_BASE_URL',   'https://whutzupp.web.id/api/v1');

// ---------------------------------------------------------------------------

/**
 * Kirim pesan teks.
 *
 * @param string $phone  Nomor tujuan: 08xxx / 628xxx / +628xxx
 * @param string $message
 * @return array
 */
function waSendMessage(string $phone, string $message): array
{
    return waRequest('/send_message', [
        'phone_no' => $phone,
        'message'  => $message,
    ]);
}

/**
 * Kirim gambar dari URL.
 *
 * @param string $phone
 * @param string $imageUrl  URL publik gambar (jpg/png/webp)
 * @param string $caption   Opsional
 * @return array
 */
function waSendImage(string $phone, string $imageUrl, string $caption = ''): array
{
    return waRequest('/send_image_url', [
        'phone_no' => $phone,
        'url'      => $imageUrl,
        'message'  => $caption,
    ]);
}

/**
 * Cek apakah nomor terdaftar di WhatsApp.
 *
 * @param string $phone
 * @return bool
 */
function waValidateNumber(string $phone): bool
{
    $result = waRequest('/validate_number', ['phone_no' => $phone]);
    return isset($result['status']) && $result['status'] === 200;
}

// ---------------------------------------------------------------------------

/**
 * Eksekusi request ke WhutzUpp API.
 * Otomatis menyertakan api_key dan number_key.
 */
function waRequest(string $endpoint, array $body): array
{
    $payload = array_merge([
        'api_key'    => WA_API_KEY,
        'number_key' => WA_NUMBER_KEY,
    ], $body);

    $ch = curl_init(WA_BASE_URL . $endpoint);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => json_encode($payload),
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_TIMEOUT        => 15,
    ]);

    $response = curl_exec($ch);
    $err      = curl_error($ch);
    curl_close($ch);

    if ($err) {
        return ['success' => false, 'message' => 'cURL error: ' . $err];
    }

    return json_decode($response, true) ?? ['success' => false, 'message' => 'Invalid response'];
}

// ---------------------------------------------------------------------------
// Contoh penggunaan (hapus atau komentari setelah integrasi)
// ---------------------------------------------------------------------------

// Kirim teks
$result = waSendMessage('628123456789', 'Halo dari WhutzUpp!');
var_dump($result);

// Kirim gambar
// $result = waSendImage('628123456789', 'https://domain.com/foto.jpg', 'Ini caption');
// var_dump($result);

// Validasi nomor
// $valid = waValidateNumber('628123456789');
// echo $valid ? 'Nomor valid' : 'Bukan pengguna WA';