-- ===================================================================
-- نظام الردود المتقدم مع النطاقات (Scopes)
-- ===================================================================
-- 
-- النطاقات المدعومة:
-- 1. global        - ردود عامة لكل البوتات
-- 2. control       - ردود فقط في بوت التحكم
-- 3. bot           - ردود لبوت فرعي معين (scope_value = bot_label)
-- 4. admin_only    - ردود تظهر للأدمن فقط في الكروبات
-- 
-- ===================================================================

-- إضافة حقول النطاقات إلى جدول message_templates
ALTER TABLE `message_templates` 
ADD COLUMN `scope` ENUM('global', 'control', 'bot', 'admin_only') NOT NULL DEFAULT 'global' AFTER `text`,
ADD COLUMN `scope_value` VARCHAR(64) DEFAULT NULL COMMENT 'bot_label if scope=bot' AFTER `scope`,
ADD COLUMN `description` TEXT DEFAULT NULL COMMENT 'وصف الرد' AFTER `scope_value`,
ADD COLUMN `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER `description`,
ADD COLUMN `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `created_at`;

-- إضافة فهرس للأداء
CREATE INDEX idx_templates_scope ON `message_templates`(`scope`, `scope_value`);

-- تحديث الردود الموجودة لتكون عامة
UPDATE `message_templates` SET `scope` = 'global' WHERE `scope` IS NULL OR `scope` = '';

-- تحديث ردود المساعدة لتكون خاصة ببوت التحكم
UPDATE `message_templates` 
SET `scope` = 'control', `description` = 'قسم المساعدة - بوت التحكم فقط'
WHERE `key` LIKE 'help_%';

-- أمثلة على ردود مخصصة (اختيارية)
-- INSERT INTO `message_templates` (`key`, `text`, `scope`, `scope_value`, `description`) VALUES
-- ('bot_welcome', 'مرحباً {username}! أهلاً بك في البوت', 'bot', 'mybot', 'رسالة ترحيب لبوت mybot فقط'),
-- ('admin_announce', 'إعلان للأدمن: {message}', 'admin_only', NULL, 'رسائل خاصة للأدمن'),
-- ('control_stats', 'إحصائيات النظام: {stats}', 'control', NULL, 'إحصائيات بوت التحكم');

-- ===================================================================
-- دوال مساعدة (اختيارية - للاستخدام في الاستعلامات)
-- ===================================================================

-- دالة للحصول على الردود حسب النطاق
DELIMITER $$

DROP FUNCTION IF EXISTS get_template_by_scope$$
CREATE FUNCTION get_template_by_scope(
    template_key VARCHAR(64),
    check_scope VARCHAR(20),
    check_scope_value VARCHAR(64)
) RETURNS TEXT
DETERMINISTIC
READS SQL DATA
BEGIN
    DECLARE result_text TEXT;
    
    -- محاولة 1: البحث عن رد محدد للنطاق المطلوب
    SELECT `text` INTO result_text
    FROM `message_templates`
    WHERE `key` = template_key
      AND `scope` = check_scope
      AND (`scope_value` = check_scope_value OR `scope_value` IS NULL)
    LIMIT 1;
    
    -- محاولة 2: إذا لم يوجد، استخدم الرد العام
    IF result_text IS NULL THEN
        SELECT `text` INTO result_text
        FROM `message_templates`
        WHERE `key` = template_key
          AND `scope` = 'global'
        LIMIT 1;
    END IF;
    
    RETURN result_text;
END$$

DELIMITER ;

-- ===================================================================
-- عرض (View) لتسهيل الاستعلام عن الردود
-- ===================================================================

CREATE OR REPLACE VIEW `v_responses_summary` AS
SELECT 
    `key`,
    `scope`,
    `scope_value`,
    LEFT(`text`, 50) as preview,
    `description`,
    LENGTH(`text`) as text_length,
    `created_at`,
    `updated_at`
FROM `message_templates`
ORDER BY `scope`, `key`;

-- ===================================================================
-- رسالة نجاح
-- ===================================================================
SELECT '
═══════════════════════════════════════
✅ نظام الردود المتقدم - تم التحديث!
═══════════════════════════════════════

📋 النطاقات الجديدة:
• global      - ردود عامة (افتراضي)
• control     - ردود بوت التحكم فقط
• bot         - ردود لبوت معين
• admin_only  - ردود للأدمن فقط

🔧 الحقول الجديدة:
• scope          - نطاق الرد
• scope_value    - قيمة النطاق (bot_label)
• description    - وصف الرد
• created_at     - تاريخ الإنشاء
• updated_at     - تاريخ التحديث

📊 الميزات:
✅ دالة get_template_by_scope()
✅ عرض v_responses_summary
✅ فهرس للأداء

💡 الأوامر الجديدة في البوت:
/response_add_global <key> <text>
/response_add_control <key> <text>
/response_add_bot <bot> <key> <text>
/response_add_admin <key> <text>
/response_scope <key>
/responses_by_scope <scope>

═══════════════════════════════════════
' as 'نتيجة التحديث';
