29 lines
1.0 KiB
SQL
29 lines
1.0 KiB
SQL
-- Referral System Tables
|
|
|
|
CREATE TABLE IF NOT EXISTS referral_codes (
|
|
id CHAR(36) PRIMARY KEY,
|
|
user_id CHAR(36) NOT NULL,
|
|
tenant_id CHAR(36) NOT NULL,
|
|
code VARCHAR(20) NOT NULL UNIQUE,
|
|
is_active TINYINT(1) DEFAULT 1,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
INDEX idx_user (user_id),
|
|
INDEX idx_code (code),
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS referrals (
|
|
id CHAR(36) PRIMARY KEY,
|
|
referrer_id CHAR(36) NOT NULL,
|
|
referred_id CHAR(36) NULL,
|
|
referral_code VARCHAR(20) NOT NULL,
|
|
status ENUM('clicked', 'registered', 'subscribed') DEFAULT 'clicked',
|
|
reward_claimed TINYINT(1) DEFAULT 0,
|
|
reward_type VARCHAR(50) NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
converted_at TIMESTAMP NULL,
|
|
INDEX idx_referrer (referrer_id),
|
|
INDEX idx_code (referral_code),
|
|
FOREIGN KEY (referrer_id) REFERENCES users(id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|