<?php
require 'db.php';
header('Content-Type: application/json');

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Form verilerini al
	$fullname = $_POST['fullname'];
    $username = $_POST['username'];
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT); // Şifreyi güvenli bir şekilde hash'le
    $email = $_POST['email'];
    $phone = $_POST['phone'] ?? '';
    $address = $_POST['address'] ?? '';
    $parentReferenceCode = $_POST['parent_reference_code'];

    // İlk olarak users tablosundaki reference_code'ları kontrol et
    $stmtUserRefCode = $pdo->prepare("SELECT id FROM users WHERE reference_code = ?");
    $stmtUserRefCode->execute([$parentReferenceCode]);
    $userRefCode = $stmtUserRefCode->fetch();

    // Ardından reference_codes tablosundaki kodları kontrol et
    $stmtRefCode = $pdo->prepare("SELECT code FROM reference_codes WHERE code = ? AND used = 0");
    $stmtRefCode->execute([$parentReferenceCode]);
    $refCode = $stmtRefCode->fetch();

    if ($userRefCode || $refCode) {
        if ($refCode) {
            // Eğer kod reference_codes tablosundan geldiyse, kullanıldı olarak işaretle
            $updateStmt = $pdo->prepare("UPDATE reference_codes SET used = 1 WHERE code = ?");
            $updateStmt->execute([$parentReferenceCode]);
        }

        // Kullanıcıyı veritabanına ekle
        $insertStmt = $pdo->prepare("INSERT INTO users (fullname, username, password, email, phone, address, parent_reference_code, reference_code) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
        // Kullanıcı için yeni bir referans kodu oluştur
        $newRefCode = substr(md5(uniqid(rand(), true)), 0, 6); // Örnek bir referans kodu oluşturma yöntemi
        $success = $insertStmt->execute([$fullname, $username, $password, $email, $phone, $address, $parentReferenceCode, $newRefCode]);

        if ($success) {
        // Kayıt başarılı ise
        echo json_encode(['success' => true, 'message' => 'Kayıt başarılı! Giriş yapabilirsiniz.']);
    } else {
        // Kayıt sırasında bir hata oluştu ise
        echo json_encode(['success' => false, 'message' => 'Bir hata oluştu. Lütfen tekrar deneyin.']);
    }
    } else {
       echo json_encode(['success' => false, 'message' => 'Geçersiz veya kullanılmış referans kodu.']);
    }
} else {
    // Doğrudan bu sayfaya erişim engelleme
    echo "Bu sayfaya doğrudan erişim yasaktır.";
}
?>
