<?php
include_once '../db/koneksi.php';
include_once '../api/sgx.php';
include_once '../api/nexus.php';
error_reporting(E_ALL);
ini_set("display_errors", 1);

// Pastikan session admin sudah jalan sebelum dicek
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

if (!isset($_SESSION['kode_admin'])) {
    echo '
    <script>
    alert("Terjadi kesalahan, harap masuk kembali!");
    window.location.replace("'.$alamat_admin.'keluar.php");
    </script>
    ';
    exit;
}

if (isset($_GET['id_withdraw'])) {
    $id_withdraw = (int)$_GET['id_withdraw'];
    $query = mysqli_query($koneksi, "SELECT * FROM tb_withdraw WHERE id = '$id_withdraw'");
    $data = mysqli_fetch_assoc($query);

    if (!$data) {
        echo '
        <script>
        alert("Data withdraw tidak ditemukan!");
        window.location.replace("'.$alamat_admin.'withdraw");
        </script>
        ';
        exit;
    }

    $extplayer  = $data['extplayer'];
    $username_player   = $data['username'];
    $ref        = $data['ref'];
    $jumlah     = (int)$data['jumlah'];
    $bank_asal  = $data['bank_asal'];
    $status_lama     = $data['status']; // Mengamankan status lama di database
    $created_at = $data['created_at'];

} else {
    echo '
    <script>
    alert("Pilih withdraw yang ingin diubah!");
    window.location.replace("'.$alamat_admin.'withdraw");
    </script>
    ';
    exit;
}

// === Proses ubah data ===
if (isset($_POST['ubah_data'])) {
    $status_baru = $_POST['status_withdraw'];

    // PROTEKSI 1: Jika status lama sudah Sukses atau Rejected, jangan izinkan diproses lagi
    if ($status_lama === 'Sukses' || $status_lama === 'Rejected') {
        echo '
        <script>
        alert("Gagal! Transaksi withdraw ini sudah selesai diproses sebelumnya.");
        window.location.replace("'.$alamat_admin.'withdraw");
        </script>
        ';
        exit;
    }

    // Aksi jika admin memilih REJECTED
    if ($status_baru == "Rejected") {
        
        $proses_api = json_decode($nx->deposit_member($extplayer, $jumlah));
        $nxsApi     = json_decode($SGX->deposit_member($extplayer, $jumlah));

        $res_nexus = $proses_api->status ?? 0;
        $res_sgx   = $nxsApi->status ?? 0;

        // LOGIKA BARU: Cek apakah salah satu berhasil (sesuaikan dengan kebutuhan sistem Anda)
        // Jika sistem Anda mengharuskan keduanya sukses, biarkan '&&', jika salah satu cukup, gunakan '||'
        // Disini saya contohkan pengecekan yang lebih logis:
        
        $berhasil_nexus = ($res_nexus == 1);
        $berhasil_sgx   = ($res_sgx == 200);

        // Jika kedua API gagal, baru hentikan. 
        // Jika anda yakin user hanya menggunakan salah satu, sesuaikan kondisi ini.
        if (!$berhasil_nexus && !$berhasil_sgx) {
            echo '
            <script>
            alert("Gagal Reject! Kedua API gagal mengembalikan koin (Nexus: '.$res_nexus.', SGX: '.$res_sgx.').");
            window.location.replace("'.$alamat_admin.'withdraw");
            </script>
            ';
            exit;
        }

        // Update saldo database lokal
        mysqli_query($koneksi, "UPDATE tb_user SET saldo = saldo + $jumlah WHERE username = '" . mysqli_real_escape_string($koneksi, $username_player) . "'");
    }

    // Update status tiket withdraw di database lokal
    $stmt = $koneksi->prepare("UPDATE tb_withdraw SET status = ?, updated_at = NOW() WHERE id = ?");
    $stmt->bind_param('si', $status_baru, $id_withdraw);
    $update = $stmt->execute();

    if ($update) {
        echo '
        <script>
        alert("Berhasil mengubah data withdraw!");
        window.location.replace("'.$alamat_admin.'withdraw");
        </script>
        ';
        exit;
    } else {
        echo "Gagal memperbarui data: " . $koneksi->error;
    }
    $stmt->close();
}

if (isset($_POST['hapus_data'])) {
    $hapus = mysqli_query($koneksi, "DELETE FROM tb_withdraw WHERE id = '$id_withdraw'");
    if ($hapus) {
        echo '
        <script>
        alert("Berhasil menghapus data withdraw!");
        window.location.replace("'.$alamat_admin.'withdraw");
        </script>
        ';
        exit;
    } else {
        echo "Gagal menghapus data: " . mysqli_error($koneksi);
    }
}
?>

<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">Withdraw</div>
    </div>
    <div class="col-md-6 text-end">
      <a href="<?php echo $alamat_admin.'withdraw'; ?>" class="btn btn-sm btn-primary">
        <span class="tf-icons mdi mdi-chevron-double-left me-1"></span>Kembali
      </a>
    </div>
  </div>

  <div class="card mb-4">
    <h5 class="card-header">Ubah Data Withdraw</h5>
    <form method="post" class="card-body">
      <div class="row g-3">
        
        <div class="col-md-6">
          <div class="form-floating form-floating-outline">
            <input type="text" class="form-control" value="<?php echo number_format($jumlah, 0, ',', '.'); ?>" readonly disabled>
            <label>Jumlah (IDR)</label>
          </div>
        </div>

        <div class="col-md-6">
          <div class="form-floating form-floating-outline">
            <select name="status_withdraw" class="form-select" required <?php echo ($status_lama == 'Sukses' || $status_lama == 'Rejected' ? 'disabled' : ''); ?>>
              <option value="Pending" <?php echo ($status_lama == 'Pending') ? 'selected' : ''; ?>>Pending</option>
              <option value="Rejected" <?php echo ($status_lama == 'Rejected') ? 'selected' : ''; ?>>Rejected</option>
              <option value="Sukses" <?php echo ($status_lama == 'Sukses') ? 'selected' : ''; ?>>Sukses</option>
            </select>
            <label>Status</label>
          </div>
        </div>
      </div>

      <div class="pt-4 text-end">
        <button type="button" class="btn btn-danger me-2" data-bs-toggle="modal" data-bs-target="#hapus_data">
          <span class="tf-icons mdi mdi-delete me-1"></span>Hapus
        </button>
        <button type="submit" name="ubah_data" class="btn btn-primary" <?php echo ($status_lama == 'Sukses' || $status_lama == 'Rejected' ? 'disabled' : ''); ?>>
          <span class="tf-icons mdi mdi-content-save me-1"></span>Simpan
        </button>
      </div>
    </form>
  </div>
</div>

<div class="modal fade" id="hapus_data" tabindex="-1">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title">Hapus Data Withdraw</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
      </div>
      <form method="post">
        <div class="modal-body">Yakin ingin menghapus data withdraw milik player <strong><?php echo htmlspecialchars($username_player); ?></strong> sebesar <?php echo number_format($jumlah, 0, ',', '.'); ?>?</div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
          <button type="submit" name="hapus_data" class="btn btn-danger">Hapus</button>
        </div>
      </form>
    </div>
  </div>
</div>