<?php
session_start();
include 'koneksi.php'; // Koneksi ke database

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = mysqli_real_escape_string($koneksi, $_POST['nama_pengguna_anggota']);
    $password = mysqli_real_escape_string($koneksi, $_POST['kata_sandi_anggota']);
    $email = mysqli_real_escape_string($koneksi, $_POST['email_anggota']);
    $bank = mysqli_real_escape_string($koneksi, $_POST['bank_anggota']);
    $nama_rekening = mysqli_real_escape_string($koneksi, $_POST['nama_rekening_anggota']);
    $nomor_rekening = mysqli_real_escape_string($koneksi, $_POST['nomor_rekening_anggota']);
    $telepon = mysqli_real_escape_string($koneksi, $_POST['telepon_anggota']);
    $reff = mysqli_real_escape_string($koneksi, $_POST['upline']);

    // Validasi data
    if (empty($username) || empty($password) || empty($email) || empty($bank) || empty($nama_rekening) || empty($nomor_rekening) || empty($telepon)) {
        echo "<script>alert('Mohon isi semua bidang yang diperlukan.'); window.location.replace('auth-register.php');</script>";
        exit;
    }

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "<script>alert('Format email tidak valid.'); window.location.replace('auth-register.php');</script>";
        exit;
    }

    // Cek apakah username, email, telepon, atau nomor rekening sudah terdaftar
    $check_existing = mysqli_prepare($koneksi, "SELECT nama_pengguna_anggota, email_anggota, telepon_anggota, nomor_rekening_anggota FROM anggota WHERE nama_pengguna_anggota = ? OR email_anggota = ? OR telepon_anggota = ? OR nomor_rekening_anggota = ?");
    mysqli_stmt_bind_param($check_existing, "ssss", $username, $email, $telepon, $nomor_rekening);
    mysqli_stmt_execute($check_existing);
    mysqli_stmt_store_result($check_existing);
    
    if (mysqli_stmt_num_rows($check_existing) > 0) {
        echo "<script>alert('Username, email, telepon, atau nomor rekening sudah terdaftar.'); window.location.replace('auth-register.php');</script>";
        exit;
    }

    // Validasi kode referral jika diisi
    if (!empty($reff)) {
        $stmt_ref = mysqli_prepare($koneksi, "SELECT * FROM anggota WHERE nama_pengguna_anggota = ?");
        mysqli_stmt_bind_param($stmt_ref, "s", $reff);
        mysqli_stmt_execute($stmt_ref);
        mysqli_stmt_store_result($stmt_ref);

        if (mysqli_stmt_num_rows($stmt_ref) === 0) {
            echo "<script>alert('Kode referral tidak valid. Silakan coba lagi.'); window.location.replace('auth-register.php');</script>";
            exit;
        }
        mysqli_stmt_close($stmt_ref);
    }

    // Proses pendaftaran
    $hashed_password = password_hash($password, PASSWORD_DEFAULT);
    $stmt = mysqli_prepare($koneksi, "INSERT INTO anggota (nama_pengguna_anggota, kata_sandi_anggota, email_anggota, bank_anggota, nama_rekening_anggota, nomor_rekening_anggota, telepon_anggota, upline) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
    
    mysqli_stmt_bind_param($stmt, "ssssssss", $username, $hashed_password, $email, $bank, $nama_rekening, $nomor_rekening, $telepon, $reff);
    
    if (mysqli_stmt_execute($stmt)) {
        // Jika ada kode referral, catat referral
        if (!empty($reff)) {
            $query2 = mysqli_prepare($koneksi, "INSERT INTO tb_refferal (user_refferal, keterangan, bonus, id_user) VALUES (?, 'Downline', 0, ?)");
            mysqli_stmt_bind_param($query2, "ss", $reff, $username);
            mysqli_stmt_execute($query2);
            mysqli_stmt_close($query2);
        }
        echo "<script>alert('Pendaftaran berhasil. Silakan login!'); window.location.replace('home.php');</script>";
    } else {
        echo "<script>alert('Terjadi kesalahan saat mendaftar. Silakan coba lagi.'); window.location.replace('auth-register.php');</script>";
    }
    
    mysqli_stmt_close($stmt);
}

mysqli_close($koneksi);
?>
