# دليل حذف العقار بشكل آمن

## المشكلة الأصلية
الملف الأصلي `delete_property.php` كان يحذف العقار مباشرة دون فحص الجداول المرتبطة، مما قد يؤدي إلى فقدان بيانات مهمة.

## الحلول المقدمة

### 1. الملف الأصلي (تم إصلاحه)
**`delete_property.php`**
- تم إصلاح مسار ملف قاعدة البيانات
- لا يزال يحذف مباشرة (للتوافق مع الكود القديم)

### 2. الملف الآمن الجديد ⭐ **موصى به**
**`delete_property_safe.php`**

#### المميزات:
- ✅ فحص شامل لجميع الجداول المرتبطة بالعقار
- ✅ عرض تقرير مفصل قبل الحذف
- ✅ تحذيرات للجداول الحرجة
- ✅ تأكيد مزدوج للحذف
- ✅ استخدام المعاملات (Transactions) لضمان السلامة

#### الاستخدام:
```
delete_property_safe.php?id=123&mode=check
```

#### الوضعيات:
- `mode=check` - فحص فقط (افتراضي)
- `mode=delete` - حذف فعلي (بعد التأكيد)

### 3. ملف فحص التبعيات (API)
**`check_property_dependencies.php`**

#### المميزات:
- ✅ يعمل كـ API
- ✅ إرجاع JSON
- ✅ يمكن استخدامه من JavaScript

#### الاستخدام:
```javascript
fetch('check_property_dependencies.php?id=123')
  .then(res => res.json())
  .then(data => {
    console.log(data);
    if (data.summary.can_delete_safely) {
      // يمكن الحذف بأمان
    } else {
      // يوجد جداول حرجة
    }
  });
```

## الجداول المرتبطة بالعقار

### الجداول غير الحرجة (يمكن حذفها بأمان):
1. `property_media` - وسائط العقار
2. `property_analytics` - تحليلات العقار
3. `property_predictive_analytics` - التحليلات التنبؤية
4. `advanced_property_analytics` - تحليلات متقدمة
5. `property_ratings` - تقييمات العقار
6. `favorites_properties` - المفضلة
7. `ad_licenses` - رخص الإعلان
8. `tenant_rating` - تقييمات المستأجرين
9. `office_rating` - تقييمات المكتب
10. `system_alerts` - تنبيهات النظام
11. `activities` - سجلات الأنشطة
12. `contract_analytics` - تحليلات العقود
13. `maintenance_company_ratings` - تقييمات شركات الصيانة

### الجداول الحرجة ⚠️ (تحتاج انتباه):
1. **`contracts`** - العقود المرتبطة
   - حذف العقار سيؤثر على العقود النشطة
   - قد يفقد بيانات مالية مهمة

2. **`maintenance_requests`** - طلبات الصيانة
   - حذف العقار سيحذف جميع طلبات الصيانة
   - فقدان سجل الصيانة

3. **`maintenance_tenders`** - مناقصات الصيانة
   - حذف العقار سيحذف جميع المناقصات
   - فقدان سجل المناقصات

4. **`cleaning_requests`** - طلبات التنظيف
   - حذف العقار سيحذف جميع طلبات التنظيف

5. **`bill_of_exchange`** - سندات الصرف والقبض
   - حذف العقار سيحذف جميع السندات المالية
   - **خطر فقدان بيانات مالية مهمة!**

6. **`payment_voucher`** - سندات الدفع
   - حذف العقار سيحذف جميع سندات الدفع
   - **خطر فقدان بيانات مالية مهمة!**

7. **`receipts_voucher`** - سندات القبض
   - حذف العقار سيحذف جميع سندات القبض
   - **خطر فقدان بيانات مالية مهمة!**

8. **`evaluations`** - التقييمات العقارية
   - حذف العقار سيحذف جميع التقييمات

9. **`brokerage_contracts`** - عقود الوساطة
   - حذف العقار سيحذف جميع عقود الوساطة

10. **`property_request_offers`** - عروض طلبات العقارات
    - حذف العقار سيحذف جميع العروض

11. **`tenant_complaints`** - شكاوى المستأجرين
    - حذف العقار سيحذف جميع الشكاوى

12. **`tenant_property_inspection`** - فحوصات المستأجرين
    - حذف العقار سيحذف جميع الفحوصات

13. **`tenant_reports`** - تقارير المستأجرين
    - حذف العقار سيحذف جميع التقارير

## التوصيات

### قبل الحذف:
1. ✅ استخدم `delete_property_safe.php` بدلاً من `delete_property.php`
2. ✅ راجع التقرير المفصل قبل الحذف
3. ✅ تأكد من عدم وجود عقود نشطة
4. ✅ تأكد من عدم وجود سندات مالية غير مسددة
5. ✅ احتفظ بنسخة احتياطية من البيانات المهمة

### بدائل الحذف:
1. **Soft Delete** - استخدام حقل `is_deleted` بدلاً من الحذف الفعلي
2. **أرشفة** - نقل البيانات إلى جدول أرشيف
3. **تعطيل** - تغيير حالة العقار إلى "معطل" بدلاً من الحذف

## مثال على التكامل

### في صفحة عرض العقارات:
```php
// بدلاً من:
<a href="delete_property.php?id=<?= $id ?>">حذف</a>

// استخدم:
<a href="delete_property_safe.php?id=<?= $id ?>&mode=check">حذف آمن</a>
```

### في JavaScript:
```javascript
async function checkBeforeDelete(propertyId) {
    const response = await fetch(`check_property_dependencies.php?id=${propertyId}`);
    const data = await response.json();
    
    if (data.success) {
        if (data.summary.can_delete_safely) {
            if (confirm('هل أنت متأكد من الحذف؟')) {
                window.location.href = `delete_property_safe.php?id=${propertyId}&mode=delete`;
            }
        } else {
            alert(`تحذير: يوجد ${data.summary.critical_tables} جداول حرجة مرتبطة!`);
            window.location.href = `delete_property_safe.php?id=${propertyId}&mode=check`;
        }
    }
}
```

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

⚠️ **تحذير:** حذف العقار سيحذف جميع البيانات المرتبطة به بشكل دائم!

✅ **نصيحة:** استخدم `delete_property_safe.php` دائماً للحذف الآمن.

📊 **إحصائيات:** الملف الجديد يفحص **20+ جدول** قبل الحذف.

---

**تاريخ الإنشاء:** 2025-11-18
**آخر تحديث:** 2025-11-18

