<?php
include_once '../koneksi.php';
include_once '../classes/APICONFIG.php';
session_start(); // Pastikan session dimulai

if (!isset($_SESSION['kode_admin'])) {
    echo '
      <script>
        alert("Terjadi kesalahan, harap masuk kembali!");
        window.location.replace("' . $alamat_admin . 'keluar.php");
      </script>
    ';
    exit;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Ambil data dari form
    $id_anggota = $_POST['id_anggota'];
    $amount = (float) $_POST['amount']; // Konversi jumlah ke angka
    $transaction_type = $_POST['transaction_type']; // Deposit atau withdraw

    if (empty($id_anggota) || empty($amount) || empty($transaction_type)) {
        echo '<script>alert("Semua data harus diisi!");</script>';
    } else {
        // Tentukan metode API berdasarkan jenis transaksi
        $api_method = ($transaction_type === 'deposit') ? "user_deposit" : "user_withdraw";

        // Tentukan query database berdasarkan jenis transaksi
        $update_query = ($transaction_type === 'deposit')
            ? "UPDATE anggota SET saldo_anggota = saldo_anggota + ? WHERE id_anggota = ?"
            : "UPDATE anggota SET saldo_anggota = saldo_anggota - ? WHERE id_anggota = ?";

        // Update saldo di database
        $stmt = $koneksi->prepare($update_query);
        $stmt->bind_param('di', $amount, $id_anggota);

        if ($stmt->execute()) {
            // Jika update ke database berhasil, kirim data ke API
            $user_code = $_POST['user_code']; // Ambil user_code dari form
            $postData = [
                "method" => $api_method,
                "agent_code" => AGENT_CODE,
                "agent_token" => AGENT_TOKEN,
                "user_code" => $user_code,
                "amount" => $amount
            ];

            // Kirim request ke API menggunakan cURL
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, API_BASE_URL);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
            curl_setopt($ch, CURLOPT_HTTPHEADER, [
                "Content-Type: application/json"
            ]);

            $response = curl_exec($ch);
            $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            curl_close($ch);

            $apiResponse = json_decode($response, true);

            if ($httpCode == 200 && isset($apiResponse['status']) && $apiResponse['status'] == 1) {
                echo '<script>alert("Saldo berhasil diperbarui dan dikirim ke API!");</script>';
            } else {
                echo '<script>alert("Saldo berhasil diperbarui, tetapi gagal dikirim ke API!");</script>';
            }
        } else {
            echo '<script>alert("Gagal memperbarui saldo di database!");</script>';
        }
    }
}
?>

<div class="container-xxl flex-grow-1 container-p-y">
    <div class="row gy-4 mb-4">
        <div class="col-md-6">
            <div class="fw-bold fs-4 text-center text-md-start">Anggota</div>
        </div>
        <div class="card table-responsive p-3">
            <table class="table" id="example">
                <thead>
                    <tr>
                        <th scope="col" class="text-center">#</th>
                        <th scope="col" class="text-center">Nama Pengguna</th>
                        <th scope="col" class="text-center">Bank</th>
                        <th scope="col" class="text-center">Nama Rekening</th>
                        <th scope="col" class="text-center">Nomor Rekening</th>
                        <th scope="col" class="text-center">Saldo</th>
                        <th scope="col" class="text-center">Aksi</th>
                    </tr>
                </thead>
                <tbody>
                    <?php
                    $nomor_anggota = 1;
                    $anggota = mysqli_query($koneksi, "SELECT * FROM anggota ORDER BY id_anggota DESC");

                    if (mysqli_num_rows($anggota) > 0) {
                        while ($data_anggota = mysqli_fetch_array($anggota)) {
                            $id_anggota = $data_anggota['id_anggota'];
                            $nama_pengguna_anggota = $data_anggota['nama_pengguna_anggota'];
                            $bank_anggota = $data_anggota['bank_anggota'];
                            $nama_rekening_anggota = $data_anggota['nama_rekening_anggota'];
                            $nomor_rekening_anggota = $data_anggota['nomor_rekening_anggota'];
                            $saldo_anggota = $data_anggota['saldo_anggota'];
                    ?>
                            <tr>
                                <th scope="row" class="text-center"><?php echo $nomor_anggota++; ?></th>
                                <td class="text-center"><?php echo htmlspecialchars($nama_pengguna_anggota); ?></td>
                                <td class="text-center"><?php echo htmlspecialchars($bank_anggota); ?></td>
                                <td class="text-center"><?php echo htmlspecialchars($nama_rekening_anggota); ?></td>
                                <td class="text-center"><?php echo htmlspecialchars($nomor_rekening_anggota); ?></td>
                                <td class="text-center"><?php echo 'Rp.' . number_format($saldo_anggota, 0, ',', '.'); ?></td>
                                <td class="text-center">
                                    <!-- Form Ubah Saldo -->
                                    <form method="POST" action="">
                                        <input type="hidden" name="id_anggota" value="<?php echo $id_anggota; ?>">
                                        <input type="hidden" name="user_code" value="<?php echo htmlspecialchars($nama_pengguna_anggota); ?>">
                                        <input type="number" name="amount" placeholder="Masukkan jumlah" required>
                                        <select name="transaction_type" required>
                                            <option value="deposit">Deposit</option>
                                            <option value="withdraw">Withdraw</option>
                                        </select>
                                        <button type="submit" class="btn btn-sm btn-primary">Kirim</button>
                                    </form>
                                </td>
                            </tr>
                    <?php
                        }
                    } else {
                    ?>
                        <tr>
                            <td class="text-center" colspan="7">Tidak Ada Data</td>
                        </tr>
                    <?php
                    }
                    ?>
                </tbody>
            </table>
        </div>
    </div>
</div>
