================================================================================
                  دليل رفع الملفات على الاستضافة وتشغيل الترحيل
================================================================================

📌 الملفات المطلوب رفعها على الاستضافة:
────────────────────────────────────────────────────────────────────────────
  ✓ config_source.php               → إعدادات قاعدة البيانات المصدر
  ✓ config_target.php               → إعدادات قاعدة البيانات الهدف
  ✓ migrate_core_no_templates.php   → سكريبت الترحيل الرئيسي
  
  اختياري (للمراجعة):
  • migration_plan.txt              → خطة الترحيل الكاملة
  • README_MIGRATION.md             → دليل الاستخدام
  • QUICK_START.txt                 → دليل البدء السريع

================================================================================
✅ الإعدادات الحالية (تم ضبطها بالفعل):
================================================================================

📁 config_source.php (قاعدة المصدر):
────────────────────────────────────────────────────────────────────────────
  DB_HOST: localhost
  DB_NAME: supehgku_Packagemaker
  DB_USER: supehgku_Packagemaker
  DB_PASS: nje6U[!SaL;q

📁 config_target.php (قاعدة الهدف):
────────────────────────────────────────────────────────────────────────────
  DB_HOST: localhost
  DB_NAME: supehgku_botsteampro
  DB_USER: supehgku_botsteampro
  DB_PASS: N(ZbyV@%#$4[617h

================================================================================
🚀 خطوات التنفيذ على الاستضافة:
================================================================================

الخطوة 1️⃣: رفع الملفات
────────────────────────────────────────────────────────────────────────────
ارفع الملفات الثلاثة إلى مجلد على الاستضافة، مثلاً:
  /home/supehgku/migration/

الهيكل المطلوب:
  /home/supehgku/migration/
    ├── config_source.php
    ├── config_target.php
    └── migrate_core_no_templates.php

الخطوة 2️⃣: الاتصال بـ SSH (إذا متاح)
────────────────────────────────────────────────────────────────────────────
ssh your_username@your_server

cd /home/supehgku/migration/

الخطوة 3️⃣: نسخة احتياطية (إلزامية!)
────────────────────────────────────────────────────────────────────────────
mysqldump -u supehgku_botsteampro -p'N(ZbyV@%#$4[617h' supehgku_botsteampro > backup_before_migration.sql

أو استخدم phpMyAdmin:
  1. افتح phpMyAdmin
  2. اختر قاعدة supehgku_botsteampro
  3. اضغط "تصدير" → "تنفيذ"
  4. احفظ الملف

الخطوة 4️⃣: اختبار (Dry-Run) - اختياري لكن موصى به
────────────────────────────────────────────────────────────────────────────
php migrate_core_no_templates.php --dry-run

النتيجة المتوقعة:
  [DRY-RUN] Would migrate 26 sub_bots records
  [DRY-RUN] Would migrate 102 steam_accounts records
  [DRY-RUN] Would migrate 358 allowed_users records
  [DRY-RUN] Would migrate 3411 steam_requests records
  
  إذا ظهرت هذه الرسائل، السكريبت جاهز! ✅

الخطوة 5️⃣: الترحيل الفعلي
────────────────────────────────────────────────────────────────────────────
php migrate_core_no_templates.php

راقب الشاشة حتى تظهر:
  ✅✅✅ MIGRATION COMPLETED SUCCESSFULLY! ✅✅✅

الوقت المتوقع: 1-2 دقيقة

الخطوة 6️⃣: التحقق من النتائج
────────────────────────────────────────────────────────────────────────────
mysql -u supehgku_botsteampro -p'N(ZbyV@%#$4[617h]' supehgku_botsteampro

ثم شغّل:

SELECT 'sub_bots' as table_name, COUNT(*) as count FROM sub_bots
UNION ALL
SELECT 'steam_accounts', COUNT(*) FROM steam_accounts
UNION ALL
SELECT 'allowed_users', COUNT(*) FROM allowed_users
UNION ALL
SELECT 'steam_requests', COUNT(*) FROM steam_requests;

النتائج المتوقعة:
  sub_bots: 26
  steam_accounts: 102
  allowed_users: 358
  steam_requests: 3411

الخطوة 7️⃣: ضبط نظام الحدود (مهم!)
────────────────────────────────────────────────────────────────────────────
UPDATE limits_global 
SET mode='weekly', 
    per_day=2, 
    weekly_cap=6, 
    ban_days=7 
WHERE id=1;

الخطوة 8️⃣: اختبار بوت واحد
────────────────────────────────────────────────────────────────────────────
  1. افتح بوت واحد من البوتات المُرحّلة
  2. اطلب كود من حساب Steam
  3. تحقق من استلام الكود
  4. تحقق من عمل نظام الحدود

================================================================================
📊 ما الذي سيُرحّل؟
================================================================================

✅ الذي يُرحّل:
────────────────────────────────────────────────────────────────────────────
  ✓ sub_bots (26 بوت)
    - id, label, bot_token, channel_id
    - max_users (الحد الأقصى للمستخدمين) ✅
    - welcome_message
    - is_paused
    - created_at, updated_at
    
  ✓ steam_accounts (102 حساب)
    - id, account_name, shared_secret
    - active
    - created_at, updated_at
    
  ✓ allowed_users (358 مستخدم)
    - id, bot_token, user_id
    - banned
    - created_at
    
  ✓ steam_requests (3411 طلب تاريخي)
    - id, bot_token, user_id, account_name
    - request_time

❌ الذي لن يُرحّل:
────────────────────────────────────────────────────────────────────────────
  ✗ message_templates (نبقي القوالب الجديدة)
  ✗ جداول limits_* (نظام الحدود الجديد)
  ✗ daily_attempts من sub_bots (معطل في النظام الجديد)
  ✗ daily_attempts_override من steam_accounts (معطل)

================================================================================
💡 ملاحظات هامة عن max_users:
================================================================================

✅ نعم، الحد الأقصى للمستخدمين (max_users) سيُرحّل تلقائياً!

كيف يعمل في النظام الجديد:
────────────────────────────────────────────────────────────────────────────
1. max_users موجود في جدول sub_bots
2. عندما يُرحّل البوت، سيُنقل max_users كما هو
3. النظام الجديد سيتحقق من عدد المستخدمين الحاليين تلقائياً
4. إذا تجاوز العدد، البوت سيرفض مستخدمين جدد

مثال:
────────────────────────────────────────────────────────────────────────────
البوت "scor" له max_users = 84
بعد الترحيل:
  - max_users سيبقى 84
  - إذا كان عدد المستخدمين الحاليين 84 → لا مستخدمين جدد
  - إذا كان أقل من 84 → يمكن إضافة مستخدمين جدد

التحقق من max_users بعد الترحيل:
────────────────────────────────────────────────────────────────────────────
SELECT label, max_users, 
       (SELECT COUNT(*) FROM allowed_users WHERE bot_token = sub_bots.bot_token) as current_users
FROM sub_bots;

================================================================================
⚠️ إذا حدث خطأ:
================================================================================

مشكلة: "Connection refused"
────────────────────────────────────────────────────────────────────────────
  الحل: تحقق من بيانات الاتصال في config_source.php و config_target.php

مشكلة: "Table doesn't exist"
────────────────────────────────────────────────────────────────────────────
  الحل: تأكد من أن قاعدة supehgku_botsteampro منشأة ومُهيّئة (بها الجداول)

مشكلة: السكريبت توقف في المنتصف
────────────────────────────────────────────────────────────────────────────
  الحل: ببساطة أعد تشغيله - سيستأنف تلقائياً من آخر نقطة:
  
  php migrate_core_no_templates.php

مشكلة: أريد البدء من الصفر
────────────────────────────────────────────────────────────────────────────
  الحل:
  1. احذف ملف الحالة: rm .migrate_state.json
  2. أعد التشغيل: php migrate_core_no_templates.php

================================================================================
🔄 خطة التراجع (Rollback) - في حالة الطوارئ
================================================================================

إذا احتجت للتراجع الكامل:
────────────────────────────────────────────────────────────────────────────
-- استخدم النسخة الاحتياطية
mysql -u supehgku_botsteampro -p'N(ZbyV@%#$4[617h]' supehgku_botsteampro < backup_before_migration.sql

أو يدوياً:
────────────────────────────────────────────────────────────────────────────
USE supehgku_botsteampro;
SET FOREIGN_KEY_CHECKS=0;

TRUNCATE TABLE steam_requests;
TRUNCATE TABLE allowed_users;
DELETE FROM steam_accounts WHERE id IN (SELECT id FROM supehgku_Packagemaker.steam_accounts);
DELETE FROM sub_bots WHERE id IN (SELECT id FROM supehgku_Packagemaker.sub_bots);

SET FOREIGN_KEY_CHECKS=1;

================================================================================
📝 الملفات المُنشأة أثناء التنفيذ:
================================================================================

1. migrate_execution.log          → سجل تفصيلي لجميع العمليات
2. .migrate_state.json            → حالة الترحيل (للاستئناف)
   
   يُحذف تلقائياً عند النجاح ✅

================================================================================
✅ Checklist النهائي:
================================================================================

قبل البدء:
  [ ] رفعت الملفات الثلاثة على الاستضافة
  [ ] أخذت نسخة احتياطية من supehgku_botsteampro
  [ ] اختبرت بـ --dry-run
  [ ] تأكدت من بيانات الاتصال في config_source.php و config_target.php

بعد الترحيل:
  [ ] تحققت من عدد السجلات (26, 102, 358, 3411)
  [ ] ضبطت limits_global
  [ ] اختبرت بوت واحد
  [ ] تحققت من max_users (الحد الأقصى للمستخدمين)
  [ ] راجعت system_logs

================================================================================
📞 إذا احتجت مساعدة:
================================================================================

راجع الملفات:
  • migrate_execution.log     → سجل الأخطاء التفصيلي
  • migration_plan.txt        → خطة الترحيل الكاملة
  • README_MIGRATION.md       → دليل استكشاف الأخطاء

================================================================================
🎉 نهاية الدليل - بالتوفيق!
================================================================================

ملاحظة: max_users (الحد الأقصى للمستخدمين) سيُرحّل تلقائياً مع كل بوت ✅
