32 lines
1.2 KiB
SQL
32 lines
1.2 KiB
SQL
-- Gamification Tables for Musadaq
|
|
-- Run this migration on your production database
|
|
|
|
-- Points tracking
|
|
CREATE TABLE IF NOT EXISTS user_points (
|
|
id VARCHAR(36) PRIMARY KEY,
|
|
user_id VARCHAR(36) NOT NULL,
|
|
tenant_id VARCHAR(36) NOT NULL,
|
|
action VARCHAR(50) NOT NULL,
|
|
points INT NOT NULL DEFAULT 0,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
INDEX idx_user_points_user (user_id),
|
|
INDEX idx_user_points_tenant (tenant_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Badge tracking
|
|
CREATE TABLE IF NOT EXISTS user_badges (
|
|
id VARCHAR(36) PRIMARY KEY,
|
|
user_id VARCHAR(36) NOT NULL,
|
|
tenant_id VARCHAR(36) NOT NULL,
|
|
badge_key VARCHAR(50) NOT NULL,
|
|
badge_name VARCHAR(100) NOT NULL,
|
|
badge_icon VARCHAR(10) NOT NULL DEFAULT '🏅',
|
|
earned_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uk_user_badge (user_id, badge_key),
|
|
INDEX idx_user_badges_tenant (tenant_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- WhatsApp link code column (add to users table)
|
|
ALTER TABLE users ADD COLUMN IF NOT EXISTS whatsapp_link_code VARCHAR(10) DEFAULT NULL;
|
|
ALTER TABLE users ADD COLUMN IF NOT EXISTS whatsapp_linked TINYINT(1) DEFAULT 0;
|