<?php
/**
 * config/fonnte.php - Konfigurasi API WhatsApp Fonnte
 * 
 * DIGUNAKAN UNTUK:
 * - Mengirim link wa.me ke wisatawan (konfirmasi booking)
 * - BUKAN untuk mengirim pesan ke pemilik kapal
 */

// Konfigurasi Fonnte
define('FONNTE_API_KEY', 'UufsFMzCmLyHXt97MGSK');
define('FONNTE_BASE_URL', 'https://api.fonnte.com');

// Aktifkan error logging
ini_set('log_errors', 1);
$logDir = __DIR__ . '/../logs';
if (!is_dir($logDir)) mkdir($logDir, 0777, true);

function writeLog($message, $type = 'INFO') {
    $logFile = __DIR__ . '/../logs/fonnte.log';
    $timestamp = date('Y-m-d H:i:s');
    file_put_contents($logFile, "[$timestamp] [$type] $message" . PHP_EOL, FILE_APPEND);
}

/**
 * Kirim pesan WhatsApp via Fonnte
 * Digunakan hanya untuk mengirim konfirmasi ke wisatawan
 */
function sendWhatsApp($nomor_tujuan, $pesan) {
    writeLog("=== SEND WHATSAPP ===");
    writeLog("Nomor tujuan: $nomor_tujuan");
    
    $nomor_tujuan = cleanPhoneNumber($nomor_tujuan);
    
    if (empty($nomor_tujuan) || strlen($nomor_tujuan) < 10) {
        writeLog("❌ Nomor tidak valid", 'ERROR');
        return ['status' => false, 'message' => 'Nomor tidak valid'];
    }
    
    $data = [
        'target' => $nomor_tujuan,
        'message' => $pesan,
        'countryCode' => '62',
    ];
    
    writeLog("Data: " . json_encode($data));
    
    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL => FONNTE_BASE_URL . '/send',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => http_build_query($data),
        CURLOPT_HTTPHEADER => [
            'Authorization: ' . FONNTE_API_KEY,
            'Content-Type: application/x-www-form-urlencoded',
        ],
    ]);
    
    $response = curl_exec($curl);
    $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    $curlError = curl_error($curl);
    curl_close($curl);
    
    writeLog("HTTP Code: $httpCode");
    writeLog("Response: $response");
    
    if ($curlError) {
        writeLog("❌ CURL Error: $curlError", 'ERROR');
    }
    
    return [
        'status' => $httpCode == 200,
        'response' => json_decode($response, true),
        'http_code' => $httpCode
    ];
}

function cleanPhoneNumber($phone) {
    $phone = preg_replace('/[^0-9]/', '', $phone);
    if (empty($phone)) return '';
    if (substr($phone, 0, 1) === '0') return '62' . substr($phone, 1);
    if (substr($phone, 0, 2) !== '62' && substr($phone, 0, 1) !== '0') {
        if (substr($phone, 0, 1) === '8' || substr($phone, 0, 1) === '1') {
            return '62' . $phone;
        }
    }
    return $phone;
}

/**
 * Kirim link wa.me ke wisatawan
 * Wisatawan akan klik link dan chat langsung ke pemilik kapal
 */
function sendWaMeLinkToWisatawan($nomor_wisatawan, $data) {
    writeLog("=== SEND WA.ME LINK TO WISATAWAN ===");
    
    // Bersihkan nomor pemilik untuk link wa.me
    $nomor_pemilik = cleanPhoneNumber($data['nomor_pemilik']);
    
    // Buat pesan yang akan dikirim wisatawan ke pemilik
    $pesan_wa = urlencode("
🛥️ *PESANAN BARU DARI WISATAWAN* 🛥️

Halo Bapak/Ibu Pemilik Kapal *{$data['nama_kapal']}*,

Saya *{$data['nama_wisatawan']}* ingin melakukan pemesanan kapal Anda.

📌 *Detail Pesanan:*
━━━━━━━━━━━━━━━━━━━━━━━━━
📌 Kode: *{$data['kode_pesanan']}*
📅 Tanggal: {$data['tanggal']}
📆 Durasi: {$data['durasi']} hari
👥 Penumpang: {$data['jumlah_penumpang']} orang
💰 Total: Rp {$data['total_harga']}
━━━━━━━━━━━━━━━━━━━━━━━━━

📱 No HP Saya: {$data['no_hp']}
📧 Email: {$data['email']}

🙏 Mohon segera diverifikasi pesanan saya.

Terima kasih.
");
    
    $link_wa = "https://wa.me/{$nomor_pemilik}?text={$pesan_wa}";
    
    $pesan = "
✅ *PESANAN ANDA TELAH KAMI TERIMA* ✅

Halo *{$data['nama_wisatawan']}*,

Pesanan Anda dengan kode *{$data['kode_pesanan']}* telah kami terima.

📌 *Detail Pesanan:*
━━━━━━━━━━━━━━━━━━━━━━━━━
📅 Tanggal: {$data['tanggal']}
📆 Durasi: {$data['durasi']} hari
👥 Penumpang: {$data['jumlah_penumpang']} orang
⛵ Kapal: {$data['nama_kapal']}
💰 Total: Rp {$data['total_harga']}
━━━━━━━━━━━━━━━━━━━━━━━━━

📱 *SILAKAN CHAT PEMILIK KAPAL:*
🔗 Klik link ini untuk mengirim pesan:
{$link_wa}

⏳ Status: *MENUNGGU VERIFIKASI PEMILIK KAPAL*

📌 *Kode Pesanan:* {$data['kode_pesanan']}
🔗 Link Status: {$data['link_status']}

Terima kasih telah menggunakan layanan kami. 🌊⛵
";
    
    return sendWhatsApp($nomor_wisatawan, $pesan);
}

/**
 * Kirim konfirmasi ke wisatawan bahwa booking berhasil
 */
function sendConfirmationToWisatawan($nomor_wisatawan, $data) {
    writeLog("=== SEND CONFIRMATION TO WISATAWAN ===");
    
    $pesan = "
✅ *PESANAN ANDA TELAH KAMI TERIMA* ✅

Halo *{$data['nama_wisatawan']}*,

Pesanan Anda dengan kode *{$data['kode_pesanan']}* telah kami terima.

📌 *Detail Pesanan:*
━━━━━━━━━━━━━━━━━━━━━━━━━
📅 Tanggal: {$data['tanggal']}
📆 Durasi: {$data['durasi']} hari
👥 Penumpang: {$data['jumlah_penumpang']} orang
⛵ Kapal: {$data['nama_kapal']}
💰 Total: Rp {$data['total_harga']}
━━━━━━━━━━━━━━━━━━━━━━━━━

⏳ Status: *MENUNGGU VERIFIKASI PEMILIK KAPAL*

📌 *Kode Pesanan:* *{$data['kode_pesanan']}*
🔗 Link Status: {$data['link_status']}

Kami akan mengirimkan notifikasi setelah pesanan diverifikasi.

Terima kasih telah menggunakan layanan kami. 🌊⛵
";
    
    return sendWhatsApp($nomor_wisatawan, $pesan);
}