<?php
// backend.php - KMSP-STORE Final Version (API Baru)

date_default_timezone_set('Asia/Jakarta');
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: *");
header("Access-Control-Allow-Methods: *");
header('Content-Type: application/json');

include 'config.php';

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    exit(0);
}

$action = $_GET['action'] ?? '';

/**
 * Ambil daftar produk
 */
if ($action === 'produk' && $_SERVER['REQUEST_METHOD'] === 'GET') {
    $url = "https://golang-openapi-packagelist-xltembakservice.kmsp-store.com/v1?api_key=$apikey_pusat";
    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
    ]);
    $response = curl_exec($ch);
    curl_close($ch);

    $res = json_decode($response, true);

    echo json_encode([
        "status" => $res['status'] ?? false,
        "produk" => $res['data'] ?? [],
        "msg" => $res['message'] ?? 'Gagal mengambil data produk'
    ]);
    exit;
}

/**
 * Beli produk (API Baru)
 */
if ($action === 'beli' && $_SERVER['REQUEST_METHOD'] === 'POST') {
    $request = json_decode(file_get_contents("php://input"), true);

    $product_code = $request['product_id'] ?? null;
    $number = $request['number'] ?? null;
    $harga_final = $request['harga_final'] ?? null;
    $nama_user = $request['nama_user'] ?? '';
    $email_user = $request['email_user'] ?? '';
    $metode_pembayaran = $request['metode_pembayaran'] ?? '';

    // Validasi input
    if (!$product_code || !$number || $harga_final === null || !$email_user) {
        http_response_code(400);
        echo json_encode(["status" => false, "msg" => "Data tidak lengkap"]);
        exit;
    }

    if (!is_numeric($harga_final) || $harga_final < 0) {
        http_response_code(400);
        echo json_encode(["status" => false, "msg" => "Harga tidak valid"]);
        exit;
    }

    // Kirim ke API pusat (GET) - versi baru TANPA access_token
    $query = http_build_query([
        "api_key" => $apikey_pusat,
        "package_code" => $product_code,
        "phone" => $number,
        "price_or_fee" => $harga_final
    ]);

    $url = "https://golang-openapi-packagepurchase-xltembakservice.kmsp-store.com/v1?$query";

    file_put_contents("debug_order.txt", $url);

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);

    file_put_contents("debug_order_response.txt", $response);

    $res = json_decode($response, true);

    if (isset($res['status']) && $res['status'] === true) {
        $trx_id = $res['data']['trx_id'] ?? uniqid("trx_");

        // Potong saldo user di Bukaolshop
        $header = ["Authorization: Bearer $apikey_bukaolshop"];
        $saldoBody = [
            "email_user" => $email_user,
            "tipe" => "kurang",
            "jumlah" => $harga_final,
            "notifikasi" => "true",
            "judul_notifikasi" => "Transaksi Paket Berhasil Dibuat",
            "pesan_notifikasi" => "Transaksi Anda sedang diproses, silakan cek di riwayat transaksi."
        ];
        $ch = curl_init("https://bukaolshop.net/api/v1/member/saldo");
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HTTPHEADER => $header,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($saldoBody)
        ]);
        curl_exec($ch);
        curl_close($ch);

        // Simpan riwayat transaksi
        $trx = [
            "id_transaksi" => $trx_id,
            "nama_user" => $nama_user,
            "email_user" => $email_user,
            "harga" => $harga_final,
            "waktu" => date("Y-m-d H:i:s"),
            "expired_at" => date("Y-m-d H:i:s", time() + 3600),
            "package_name" => $res['data']['package_name'] ?? '',
            "package_code" => $res['data']['package_code'] ?? '',
            "trx_number" => $res['data']['msisdn'] ?? $number,
            "payment_method" => $metode_pembayaran,
            "is_qris" => $res['data']['is_qris'] ?? false,
            "deeplink" => $res['data']['deeplink_data']['deeplink_url'] ?? '',
            "qris_code" => $res['data']['qris_data']['qr_code'] ?? '',
            "status_transaksi" => "pending"
        ];

        $file = 'riwayat_transaksi.json';
        $data = file_exists($file) ? json_decode(file_get_contents($file), true) : [];
        $data[] = $trx;
        file_put_contents($file, json_encode($data, JSON_PRETTY_PRINT));

        // Kirim notifikasi Telegram
        $pesan = "📦 *Order Baru Dor V2 *\n"
               . "👤 *User:* $nama_user\n"
               . "📧 *Email:* `$email_user`\n"
               . "📱 *Nomor:* `{$trx['trx_number']}`\n"
               . "🆔 *Produk:* {$trx['package_name']}\n"
               . "💳 *Pembayaran:* {$trx['payment_method']}\n"
               . "💰 *Harga:* Rp *" . number_format($harga_final) . "*\n"
               . "⏱ *Waktu:* " . date("d-m-Y H:i:s");

        file_get_contents("https://api.telegram.org/bot$telegram_token/sendMessage?" . http_build_query([
            'chat_id' => $telegram_chat_id,
            'text' => $pesan,
            'parse_mode' => 'Markdown'
        ]));

        echo json_encode([
            "status" => true,
            "msg" => $res['message'] ?? 'Transaksi berhasil',
            "trx" => $trx
        ]);
    } else {
        echo json_encode([
            "status" => false,
            "msg" => $res['message'] ?? 'Gagal memproses order ke pusat'
        ]);
    }
}
