# 📋 ملخص توزيع المهام والصلاحيات - نظام AUTO TESTER

## 🏗️ الهيكل التنظيمي للنظام

```
                    👑 المدير العام (Admin)
                           │
           ┌───────────────┼───────────────┐
           │               │               │
      👔 مشرف      👔 مشرف منطقة    👔 مشرف فرع
    (Supervisor)  (Area Supervisor) (Branch Supervisor)
           │               │               │
           └───────────────┼───────────────┘
                           │
                    🔧 الفاحصون (Inspectors)
                           │
                    👤 العملاء (Clients)
```

## 👑 1. المدير العام (Admin)

### الصلاحيات الكاملة:
- **إدارة المستخدمين** ➕ إضافة مستخدمين (جميع الأدوار)
- **✏️ تعديل بيانات أي مستخدم**
- **🗑️ حذف مستخدم**
- **🔒 تفعيل/تعطيل حسابات**

### إدارة المشرفين:
- **➕ تعيين مشرفين جدد**
- **📊 متابعة أداء المشرفين**
- **🗺️ توزيع المشرفين على المناطق**

### إدارة الفاحصين:
- **➕ تعيين فاحصين**
- **📈 مراقبة أداء الفاحصين**
- **💰 تحديد الرواتب والمكافآت**

### إدارة الفحوصات:
- **👁️ مراقبة جميع الفحوصات**
- **📊 تقارير شاملة**
- **✅ اعتماد الفحوصات**

### إدارة المراكز:
- **🏢 إضافة مراكز جديدة**
- **✏️ تعديل بيانات المراكز**
- **🗑️ حذف مراكز**

### التقارير:
- **📊 تقارير شاملة للنظام**
- **📈 إحصائيات متقدمة**
- **💹 تحليل الإيرادات**

### الإعدادات:
- **⚙️ إعدادات النظام العامة**
- **🔐 إدارة الصلاحيات والأدوار**

### نقاط نهاية API الخاصة بالمدير:
```javascript
// إدارة المستخدمين
GET    /admin/users                    // عرض جميع المستخدمين
POST   /admin/users                    // إضافة مستخدم جديد
PUT    /admin/users/update             // تحديث مستخدم
DELETE /admin/users/delete             // حذف مستخدم

// لوحة التحكم
GET    /admin/dashboard                // إحصائيات عامة

// التقارير
GET    /admin/reports                  // تقارير شاملة
GET    /admin/activity                 // سجل النشاطات

// إدارة الأدوار
GET    /admin/roles                    // عرض الأدوار
POST   /admin/roles                    // إضافة دور
PUT    /admin/roles/update             // تعديل دور
```

---

## 👔 2. المشرف (Supervisor)

### الصلاحيات:
- **إدارة الفاحصين** ➕ إضافة فاحصين جدد
- **✏️ تعديل بيانات الفاحصين**
- **👁️ عرض تقارير أداء الفاحصين**
- **🔒 تفعيل/تعطيل الفاحصين**

### إدارة الفحوصات:
- **👁️ عرض جميع فحوصات المنطقة**
- **✅ اعتماد الفحوصات**
- **❌ رفض الفحوصات (مع سبب)**
- **📋 متابعة حالة الفحوصات**

### إدارة المراكز:
- **🏢 عرض مراكز المنطقة**
- **➕ إضافة مراكز جديدة**
- **✏️ تعديل بيانات المراكز**

### التقارير:
- **📊 تقارير أداء الفاحصين**
- **📈 إحصائيات المنطقة**
- **💰 تقارير الإيرادات**

### الملف الشخصي:
- **👤 تعديل بياناته الشخصية**
- **🔑 تغيير كلمة المرور**

### نقاط نهاية API الخاصة بالمشرف:
```javascript
// إدارة الفاحصين
GET    /supervisor/inspectors           // عرض فاحصي المنطقة
POST   /supervisor/inspectors           // إضافة فاحص جديد
PUT    /supervisor/inspectors/update    // تحديث فاحص

// إدارة الفحوصات
GET    /supervisor/inspections          // عرض فحوصات المنطقة
POST   /supervisor/inspections/approve  // اعتماد فحص
POST   /supervisor/inspections/reject   // رفض فحص

// إدارة المراكز
GET    /supervisor/centers              // عرض مراكز المنطقة
POST   /supervisor/centers              // إضافة مركز

// لوحة التحكم
GET    /supervisor/dashboard            // إحصائيات المنطقة
```

---

## 🔧 3. الفاحص (Inspector)

### الصلاحيات:
- **الفحوصات** 📋 عرض الفحوصات المكلف بها
- **📝 إدخال نتائج الفحص**
- **📸 رفع صور الفحص**
- **✅ تحديث حالة الفحص**

### جدول الأعمال:
- **📅 عرض جدول المواعيد**
- **⏰ تأكيد حضور المواعيد**

### التقارير:
- **📊 عرض تقارير أدائه الشخصي**
- **📈 إحصائيات فحوصاته**

### الملف الشخصي:
- **👤 تعديل بياناته الشخصية**
- **🔑 تغيير كلمة المرور**

### نقاط نهاية API الخاصة بالفاحص:
```javascript
// الفحوصات
GET    /inspector/inspections           // فحوصاتي المكلف بها
PUT    /inspector/inspections/update    // تحديث حالة الفحص
POST   /inspector/inspections/report    // إضافة تقرير الفحص

// جدول الأعمال
GET    /inspector/schedule              // جدول المواعيد
PUT    /inspector/schedule/confirm      // تأكيد موعد

// التقارير
GET    /inspector/reports               // تقارير أدائي
```

---

## 👤 4. العميل (Client)

### الصلاحيات:
- **الفحوصات** 📋 طلب فحص جديد
- **👁️ متابعة حالة فحوصاته**
- **📄 عرض تقارير الفحوصات السابقة**

### المراكز:
- **🏢 البحث عن مراكز الفحص**
- **📍 عرض مواقع المراكز**

### الملف الشخصي:
- **👤 تعديل بياناته الشخصية**
- **🔑 تغيير كلمة المرور**
- **📜 عرض تاريخ الفحوصات**

### نقاط نهاية API الخاصة بالعميل:
```javascript
// الفحوصات
GET    /client/inspections              // فحوصاتي
POST   /client/inspections              // طلب فحص جديد
GET    /client/inspections/{id}         // تفاصيل فحص

// المراكز
GET    /client/centers                  // عرض المراكز
GET    /client/centers/{id}             // تفاصيل مركز

// الملف الشخصي
GET    /client/profile                  // بياناتي
PUT    /client/profile                  // تحديث بياناتي
```

---

## 📊 مخطط الصلاحيات (Permission Matrix)

| الإجراء | 👑 Admin | 👔 Supervisor | 🔧 Inspector | 👤 Client |
|---------|----------|---------------|---------------|------------|
| إدارة المستخدمين | ✅ | ❌ | ❌ | ❌ |
| إضافة فاحص | ✅ | ✅ | ❌ | ❌ |
| تعديل فاحص | ✅ | ✅ | ❌ | ❌ |
| حذف مستخدم | ✅ | ❌ | ❌ | ❌ |
| عرض جميع الفحوصات | ✅ | ✅ (منطقته) | ❌ | ❌ |
| عرض فحوصاته | ✅ | ✅ | ✅ | ✅ |
| اعتماد فحص | ✅ | ✅ | ❌ | ❌ |
| إدخال نتائج فحص | ✅ | ❌ | ✅ | ❌ |
| طلب فحص جديد | ✅ | ❌ | ❌ | ✅ |
| إدارة المراكز | ✅ | ✅ (منطقته) | ❌ | ❌ |
| عرض التقارير الشاملة | ✅ | ✅ (منطقته) | ✅ (شخصية) | ❌ |
| تعديل الملف الشخصي | ✅ | ✅ | ✅ | ✅ |
| إدارة الأدوار | ✅ | ❌ | ❌ | ❌ |
| سجل النشاطات | ✅ | ❌ | ❌ | ❌ |

---

## 🔐 مستويات الصلاحيات (Permission Levels)

```javascript
const PERMISSION_LEVELS = {
    // مستوى المدير (100)
    ADMIN: {
        manage_users: 100,
        manage_roles: 100,
        manage_all_inspections: 100,
        manage_all_centers: 100,
        view_all_reports: 100,
        system_settings: 100
    },
    
    // مستوى المشرف (70)
    SUPERVISOR: {
        manage_inspectors: 70,
        manage_area_inspections: 70,
        manage_area_centers: 70,
        view_area_reports: 70,
        approve_inspections: 70
    },
    
    // مستوى الفاحص (40)
    INSPECTOR: {
        view_assigned_inspections: 40,
        update_inspection_status: 40,
        add_inspection_report: 40,
        view_personal_reports: 40
    },
    
    // مستوى العميل (10)
    CLIENT: {
        create_inspection_request: 10,
        view_own_inspections: 10,
        view_centers: 10,
        manage_profile: 10
    }
};
```

---

## 🗺️ توزيع المناطق الجغرافية

```
المدير العام
    │
    ├── مشرف المنطقة الشرقية
    │       ├── فاحص الدمام
    │       ├── فاحص الخبر
    │       └── فاحص الظهران
    │
    ├── مشرف المنطقة الغربية
    │       ├── فاحص جدة
    │       ├── فاحص مكة
    │       └── فاحص الطائف
    │
    └── مشرف المنطقة الوسطى
            ├── فاحص الرياض
            ├── فاحص الخرج
            └── فاحص المجمعة
```

---

## 📝 ملخص الأدوار والمسؤوليات

### 👑 المدير العام (Admin)
**مسؤول عن:** النظام بأكمله

**يُشرف على:** جميع المشرفين والفاحصين والعملاء

**صلاحيات خاصة:** إدارة الأدوار، إعدادات النظام، سجل النشاطات

---

### 👔 المشرف (Supervisor)
**مسؤول عن:** منطقة جغرافية محددة

**يُشرف على:** فاحصي منطقته ومراكزها

**صلاحيات خاصة:** اعتماد الفحوصات، إضافة فاحصين جدد

---

### 🔧 الفاحص (Inspector)
**مسؤول عن:** تنفيذ الفحوصات المكلف بها

**يُشرف على:** لا يشرف على أحد

**صلاحيات خاصة:** إدخال نتائج الفحص، رفع الصور

---

### 👤 العميل (Client)
**مسؤول عن:** طلبات الفحص الخاصة به

**يُشرف على:** لا يشرف على أحد

**صلاحيات خاصة:** طلب فحص جديد، متابعة حالته

---

## 🔒 قواعد الأمان

1. **لا يمكن لأي دور الوصول إلى بيانات دور أعلى منه**
2. **المشرف يرى فقط بيانات منطقته الجغرافية**
3. **الفاحص يرى فقط الفحوصات المكلف بها**
4. **العميل يرى فقط فحوصاته الخاصة**
5. **جميع العمليات مسجلة في سجل النشاطات**
6. **التغييرات المهمة تتطلب موافقة من مشرف أعلى**

---

## 🚀 هذا النظام يضمن توزيعاً عادلاً للمهام والصلاحيات مع الحفاظ على أعلى مستويات الأمان والكفاءة! 🎯
