# نظام الرسائل المحدث - B للتطوير العقاري

## نظرة عامة

تم تحديث نظام الرسائل ليدعم التبديل بين البيئة المحلية والإنتاجية مع ربط الوسائط من مسار `users/user/uploads`.

## الملفات المحدثة

### 1. `get_messages.php`
- **الوظيفة**: جلب الرسائل والمحادثات
- **الميزات الجديدة**:
  - دعم التبديل بين البيئات (محلي/إنتاجي)
  - ربط الوسائط من `users/user/uploads`
  - معالجة الصور والملفات الصوتية والمستندات
  - التحقق من وجود الملفات قبل إرجاع الروابط

### 2. `send_message.php`
- **الوظيفة**: إرسال رسائل جديدة مع وسائط
- **الميزات الجديدة**:
  - رفع الصور إلى `users/user/uploads/images/`
  - رفع الملفات الصوتية إلى `users/user/uploads/audio/`
  - رفع المستندات إلى `users/user/uploads/documents/`
  - التحقق من نوع وحجم الملفات
  - إنشاء أسماء فريدة للملفات

### 3. `delete_message.php`
- **الوظيفة**: حذف الرسائل وملفات الوسائط المرتبطة
- **الميزات الجديدة**:
  - حذف ملفات الوسائط من النظام
  - التحقق من صلاحيات الحذف

### 4. `edit_message.php`
- **الوظيفة**: تعديل نص الرسائل
- **الميزات الجديدة**:
  - تحديث نص الرسالة مع timestamp

## مسارات الوسائط

### البيئة المحلية
```
C:/xampp/htdocs/0f/users/user/uploads/
├── images/
├── audio/
└── documents/
```

### البيئة الإنتاجية
```
/home/faradjwb/public_html/0f/users/user/uploads/
├── images/
├── audio/
└── documents/
```

## URLs العامة

### البيئة المحلية
```
http://localhost/0f/users/user/uploads/
```

### البيئة الإنتاجية
```
https://farask.center/users/user/uploads/
```

## أنواع الملفات المدعومة

### الصور
- JPEG, PNG, GIF, WebP
- الحد الأقصى: 5MB

### الملفات الصوتية
- MP3, WAV, OGG, MP4
- الحد الأقصى: 5MB

### المستندات
- PDF, DOC, DOCX, TXT
- الحد الأقصى: 5MB

## الاستخدام في Frontend

### جلب الرسائل
```javascript
const res = await fetch('../api/messages/get_messages.php?with=${userId}');
const data = await res.json();
```

### إرسال رسالة
```javascript
const formData = new FormData();
formData.append('to', userId);
formData.append('text', messageText);
formData.append('image', imageFile); // اختياري
formData.append('audio', audioFile); // اختياري
formData.append('document', documentFile); // اختياري

const res = await fetch('../api/messages/send_message.php', {
  method: 'POST',
  body: formData
});
```

### حذف رسالة
```javascript
const res = await fetch('../api/messages/delete_message.php', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ message_id: messageId })
});
```

### تعديل رسالة
```javascript
const res = await fetch('../api/messages/edit_message.php', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ 
    message_id: messageId, 
    new_text: newText 
  })
});
```

## معلومات البيئة

كل استجابة من API تحتوي على معلومات البيئة:

```json
{
  "status": "success",
  "environment": "local|production",
  "media_base_url": "http://localhost/0f/users/user/uploads/",
  "media_paths": {
    "images": "http://localhost/0f/users/user/uploads/images/",
    "audio": "http://localhost/0f/users/user/uploads/audio/",
    "documents": "http://localhost/0f/users/user/uploads/documents/"
  }
}
```

## الأمان

- التحقق من تسجيل الدخول في جميع العمليات
- التحقق من صلاحيات المستخدم (فقط المرسل يمكنه حذف/تعديل رسائله)
- التحقق من نوع وحجم الملفات
- إنشاء أسماء فريدة للملفات لمنع التعارض

## التطوير المستقبلي

- إضافة دعم للفيديو
- إضافة نظام إشعارات في الوقت الفعلي
- إضافة دعم للمجموعات
- إضافة تشفير للرسائل الحساسة

## ملاحظات مهمة

1. تأكد من وجود مجلدات الوسائط في كلا البيئتين
2. تأكد من صلاحيات الكتابة على مجلدات الرفع
3. في البيئة الإنتاجية، تأكد من إعدادات الخادم لرفع الملفات الكبيرة
4. احتفظ بنسخ احتياطية من ملفات الوسائط المهمة
