Update: 2026-05-08 04:58:23

This commit is contained in:
Hamza-Ayed
2026-05-08 04:58:23 +03:00
parent 4721ca83da
commit 6db8986fca
48 changed files with 2212 additions and 108 deletions

View File

@@ -0,0 +1,31 @@
-- 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;

View File

@@ -0,0 +1,14 @@
-- Chatbot History Table
-- Run this migration on your production database
CREATE TABLE IF NOT EXISTS chatbot_history (
id VARCHAR(36) PRIMARY KEY,
user_id VARCHAR(36) NOT NULL,
tenant_id VARCHAR(36) NOT NULL,
question TEXT NOT NULL,
answer TEXT NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
INDEX idx_chatbot_user (user_id),
INDEX idx_chatbot_tenant (tenant_id),
INDEX idx_chatbot_date (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

View File

@@ -0,0 +1,21 @@
-- SMS Bank Integration Tables
-- Run this migration on your production database
CREATE TABLE IF NOT EXISTS raw_sms_log (
id VARCHAR(36) PRIMARY KEY,
sender VARCHAR(100) NOT NULL,
message_body TEXT NOT NULL,
status ENUM('pending', 'matched', 'unmatched', 'error') DEFAULT 'pending',
payment_request_id VARCHAR(36) DEFAULT NULL,
extracted_ref VARCHAR(50) DEFAULT NULL,
extracted_amount DECIMAL(12,3) DEFAULT NULL,
received_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
processed_at DATETIME DEFAULT NULL,
INDEX idx_sms_status (status),
INDEX idx_sms_payment (payment_request_id),
INDEX idx_sms_date (received_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Add sms_log_id to payment_requests if not exists
ALTER TABLE payment_requests ADD COLUMN IF NOT EXISTS sms_log_id VARCHAR(36) DEFAULT NULL;
ALTER TABLE payment_requests ADD COLUMN IF NOT EXISTS confirmed_at DATETIME DEFAULT NULL;

View File

@@ -0,0 +1,20 @@
-- Marketplace Tables
CREATE TABLE IF NOT EXISTS marketplace_listings (
id VARCHAR(36) PRIMARY KEY,
tenant_id VARCHAR(36) NOT NULL,
office_name VARCHAR(200) NOT NULL,
city VARCHAR(50) NOT NULL DEFAULT 'amman',
specialty VARCHAR(50) NOT NULL DEFAULT 'general',
description TEXT DEFAULT NULL,
contact_phone VARCHAR(50) DEFAULT NULL,
contact_email VARCHAR(100) DEFAULT NULL,
rating DECIMAL(2,1) DEFAULT 0,
is_featured TINYINT(1) DEFAULT 0,
is_active TINYINT(1) DEFAULT 1,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT NULL,
UNIQUE KEY uk_tenant (tenant_id),
INDEX idx_city (city),
INDEX idx_specialty (specialty),
INDEX idx_active (is_active)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;