# أسباب التوجيه إلى صفحة user_suspended.php

## 📋 الشروط التي تؤدي إلى توجيه المستخدم إلى `user_suspended.php`

### ✅ الشرط الأساسي الوحيد:

**`users.is_activated = 0`** في جدول `users`

---

## 🔍 الأماكن التي يتم فيها التحقق:

### 1. **في `register/login.php` (عند تسجيل الدخول)**
```php
// السطر 301
if ($user_data['is_activated'] == 0) {
    return [
        'redirect' => $base_url . '/includes/check/user_suspended.php',
        'message' => $user_data['notetext'] ?? 'تم إيقاف حسابك من قبل الإدارة'
    ];
}
```

### 2. **في `includes/redirect.php` (بعد تسجيل الدخول)**
```php
// السطر 35
if ($user['is_activated'] == 0) {
    return [
        'status' => 'suspended', 
        'message' => $user['notetext'] ?? 'تم إيقاف حسابك من قبل الإدارة',
        'user_type' => $user['user_type']
    ];
}
// ثم التوجيه في السطر 255
if ($user_status['status'] == 'suspended') {
    header("Location: includes/check/user_suspended.php");
    exit();
}
```

### 3. **في `users/office/dashboard.php` (عند الوصول للوحة التحكم)**
```php
// السطر 42
if ($user['is_activated'] == 0) {
    header("Location: ../../includes/check/user_suspended.php");
    exit();
}
```

---

## 📝 متى يتم تعيين `is_activated = 0`؟

### 1. **عند التسجيل الأولي:**
- في `register/register.php`: يتم إنشاء المستخدم بـ `is_activated = 0` (غير مفعل)
- في `register/register_companies.php`: يتم إنشاء المستخدم بـ `is_activated = 0` (غير مفعل)

### 2. **من قبل الإدارة:**
- يمكن للإدارة تعيين `is_activated = 0` يدوياً من لوحة التحكم
- يمكن الإدارة إضافة سبب الإيقاف في حقل `notetext`

### 3. **أسباب محتملة للإيقاف:**
- انتهاك شروط الاستخدام
- نشاط مشبوه
- عدم إكمال التحقق من الهوية
- طلب من المستخدم نفسه
- مشاكل في الدفع (للمكاتب والشركات)
- عدم الالتزام بالسياسات

---

## 🔄 التدفق الكامل:

```
تسجيل الدخول
    ↓
التحقق من is_activated
    ↓
is_activated == 0?
    ├─ نعم → user_suspended.php
    └─ لا → التحقق من نوع المستخدم
                ↓
            redirect.php
                ↓
            لوحة التحكم المخصصة
```

---

## 📊 جدول `users` - الحقول ذات الصلة بصفحة الحساب موقوف:

| الحقل | النوع | الوصف |
|------|------|-------|
| `is_activated` | tinyint(1) | **الشرط الوحيد للإيقاف:** 0 = موقوف (يُوجّه لـ user_suspended)، 1 = نشط |
| `notetext` | text | سبب الإيقاف (يُعرض في صفحة user_suspended.php) |
| `user_type` | text | نوع المستخدم (يحدد إن كان التوجيه user_suspended أم marketer_blocked أم office_suspended) |
| `status` | text | حالة الحساب (لا يُستخدم في شرط الإيقاف الحالي؛ الشرط هو is_activated فقط) |

### ⚠️ حقول لا تؤثر على ظهور صفحة "الحساب موقوف":

| الحقل | الوصف |
|------|-------|
| `email_verified` | 0: لم يتم التحقق، 1: تم التحقق من الإيميل، 2: تم التحقق يدوياً — **لا يسبب إيقاف الحساب** |
| `phone_verified` | 0: لم يتم التحقق، 1: تم التحقق من الجوال، 2: تم التحقق يدوياً — **لا يسبب إيقاف الحساب** |

ظهور صفحة "الحساب موقوف مؤقتاً" يعتمد فقط على **`is_activated = 0`** (مع استثناء مسوق عقاري ومكتب عقاري كما أعلاه).

---

## ⚠️ ملاحظات مهمة:

1. **`is_activated = 0`** يعني أن الحساب موقوف مؤقتاً من قبل الإدارة
2. **`status = 'suspended'`** قد يكون مختلفاً عن `is_activated` (حقل منفصل)
3. **`notetext`** يحتوي على سبب الإيقاف الذي يُعرض للمستخدم
4. **لا يمكن للمستخدم تفعيل حسابه بنفسه** - يجب التواصل مع الإدارة

---

## 🔧 كيفية إعادة التفعيل:

1. التواصل مع الإدارة عبر:
   - البريد الإلكتروني: support@platform.com
   - الهاتف: +966 11 123 4567
   - واتساب: +966 50 123 4567

2. الإدارة تقوم بتحديث `is_activated = 1` في قاعدة البيانات

3. بعد التحديث، يمكن للمستخدم تسجيل الدخول بشكل طبيعي

---

## 📍 الأماكن التي يتم فيها التحقق:

1. ✅ `register/login.php` - عند تسجيل الدخول
2. ✅ `includes/redirect.php` - بعد تسجيل الدخول الناجح
3. ✅ `users/office/dashboard.php` - عند الوصول للوحة التحكم
4. ✅ `users/office/login/sidebar.php` - عند محاولة الوصول للوحة التحكم من Sidebar

---

## 🎯 الخلاصة:

**الشرط الوحيد للتوجيه إلى `user_suspended.php` هو:**
```sql
SELECT * FROM users WHERE usercode = ? AND is_activated = 0
```

إذا كان `is_activated = 0`، يتم توجيه المستخدم إلى صفحة الإيقاف مع عرض سبب الإيقاف من حقل `notetext`.

