mirror of
https://github.com/myronblair/tomtomgames
synced 2026-06-30 17:51:08 -05:00
97 lines
3.8 KiB
PHP
97 lines
3.8 KiB
PHP
<?php
|
|
require_once '/home/tomtomgames.com/includes/config.php';
|
|
require_once '/home/tomtomgames.com/includes/db.php';
|
|
|
|
// 1. referral_tiers
|
|
db()->exec("CREATE TABLE IF NOT EXISTS referral_tiers (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(100) NOT NULL,
|
|
min_referrals INT NOT NULL DEFAULT 1,
|
|
tokens_per_ref DECIMAL(10,2) NOT NULL DEFAULT 10,
|
|
bonus_tokens DECIMAL(10,2) NOT NULL DEFAULT 0,
|
|
description VARCHAR(300),
|
|
is_active TINYINT(1) DEFAULT 1,
|
|
sort_order INT DEFAULT 0,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
|
|
echo "referral_tiers table OK\n";
|
|
|
|
// 2. Seed tiers
|
|
$count = (int)db()->query("SELECT COUNT(*) FROM referral_tiers")->fetchColumn();
|
|
if ($count == 0) {
|
|
$seeds = [
|
|
['Bronze Referrer', 1, 5, 0, 'Earn 5 tokens for each verified referral', 1, 0],
|
|
['Silver Referrer', 5, 8, 25, 'Earn 8 tokens per referral + 25 bonus at 5 referrals', 1, 1],
|
|
['Gold Referrer', 10, 10, 100, 'Earn 10 tokens per referral + 100 bonus at 10 referrals', 1, 2],
|
|
['Elite Referrer', 25, 15, 250, 'Earn 15 tokens per referral + 250 bonus at 25 referrals', 1, 3],
|
|
];
|
|
$st = db()->prepare("INSERT INTO referral_tiers (name,min_referrals,tokens_per_ref,bonus_tokens,description,is_active,sort_order) VALUES (?,?,?,?,?,?,?)");
|
|
foreach ($seeds as $s) $st->execute($s);
|
|
echo "4 tiers seeded\n";
|
|
} else {
|
|
echo "Tiers already exist: $count\n";
|
|
}
|
|
|
|
// 3. referrals table
|
|
db()->exec("CREATE TABLE IF NOT EXISTS referrals (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
referrer_id INT NOT NULL,
|
|
referred_id INT NOT NULL UNIQUE,
|
|
tier_id INT,
|
|
status ENUM('pending','verified','denied','deleted') DEFAULT 'pending',
|
|
tokens_awarded DECIMAL(10,2) DEFAULT 0,
|
|
admin_id INT,
|
|
admin_note VARCHAR(300),
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
resolved_at DATETIME
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
|
|
echo "referrals table OK\n";
|
|
|
|
// 4. referral_social_shares
|
|
db()->exec("CREATE TABLE IF NOT EXISTS referral_social_shares (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
user_id INT NOT NULL,
|
|
platform VARCHAR(50) NOT NULL,
|
|
bonus_tokens DECIMAL(10,2) DEFAULT 5,
|
|
status ENUM('pending','approved','denied') DEFAULT 'pending',
|
|
admin_id INT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
resolved_at DATETIME
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
|
|
echo "referral_social_shares table OK\n";
|
|
|
|
// 5. Add referral_code to users
|
|
$cols = array_column(db()->query("SHOW COLUMNS FROM users")->fetchAll(), 'Field');
|
|
if (!in_array('referral_code', $cols)) {
|
|
db()->exec("ALTER TABLE users ADD COLUMN referral_code VARCHAR(20) UNIQUE");
|
|
echo "referral_code column added\n";
|
|
}
|
|
|
|
// 6. Add referred_by to users
|
|
if (!in_array('referred_by', $cols)) {
|
|
db()->exec("ALTER TABLE users ADD COLUMN referred_by INT DEFAULT NULL");
|
|
echo "referred_by column added\n";
|
|
}
|
|
|
|
// 7. Add referred_by to pending_registrations
|
|
$pcols = array_column(db()->query("SHOW COLUMNS FROM pending_registrations")->fetchAll(), 'Field');
|
|
if (!in_array('referred_by', $pcols)) {
|
|
db()->exec("ALTER TABLE pending_registrations ADD COLUMN referred_by INT DEFAULT NULL");
|
|
echo "pending_registrations.referred_by added\n";
|
|
}
|
|
|
|
// 8. Generate codes for users missing one
|
|
$users = db()->query("SELECT id FROM users WHERE referral_code IS NULL OR referral_code = ''")->fetchAll();
|
|
$upd = db()->prepare("UPDATE users SET referral_code=? WHERE id=?");
|
|
foreach ($users as $u) {
|
|
$code = strtoupper(substr(md5($u['id'].uniqid()), 0, 8));
|
|
$upd->execute([$code, $u['id']]);
|
|
}
|
|
echo count($users) . " users given referral codes\n";
|
|
|
|
// 9. Show sample
|
|
$sample = db()->query("SELECT username, referral_code FROM users LIMIT 5")->fetchAll();
|
|
foreach ($sample as $r) echo " " . $r['username'] . ": " . $r['referral_code'] . "\n";
|
|
|
|
echo "\nDONE\n";
|