#!/bin/bash

# ========================================
# Script لتطبيق إصلاح أعمدة Address
# ========================================

echo "🚀 بدء عملية التحديث..."
echo ""

# 1. النسخ الاحتياطي
echo "📦 1. عمل نسخة احتياطية لقاعدة البيانات..."
BACKUP_FILE="backup_before_address_fix_$(date +%Y%m%d_%H%M%S).sql"
php artisan db:backup --filename="$BACKUP_FILE" 2>/dev/null || {
    echo "⚠️  خطأ في النسخ الاحتياطي التلقائي، استخدم هذا الأمر يدوياً:"
    echo "mysqldump -u username -p database_name > $BACKUP_FILE"
    read -p "هل تريد المتابعة بدون نسخة احتياطية؟ (y/n): " confirm
    if [ "$confirm" != "y" ]; then
        echo "❌ تم إلغاء العملية"
        exit 1
    fi
}
echo "✅ تم النسخ الاحتياطي"
echo ""

# 2. وضع الموقع في وضع الصيانة
echo "🔧 2. وضع الموقع في وضع الصيانة..."
php artisan down --retry=60 --secret="adly-maintenance-2026"
echo "✅ الموقع في وضع الصيانة"
echo ""

# 3. تنفيذ Migration
echo "🔄 3. تطبيق تحديث قاعدة البيانات..."
php artisan migrate --force

if [ $? -eq 0 ]; then
    echo "✅ تم تطبيق Migration بنجاح"
else
    echo "❌ فشل تطبيق Migration"
    echo "سيتم تطبيق SQL script البديل..."
    
    # تطبيق SQL البديل
    if [ -f "fix_address_columns.sql" ]; then
        echo "تطبيق SQL script..."
        mysql -u root -p < fix_address_columns.sql
        
        if [ $? -eq 0 ]; then
            echo "✅ تم تطبيق SQL script بنجاح"
        else
            echo "❌ فشل تطبيق SQL script"
            echo "⚠️  قم بتطبيقه يدوياً من phpMyAdmin"
            php artisan up
            exit 1
        fi
    else
        echo "❌ ملف SQL غير موجود"
        php artisan up
        exit 1
    fi
fi
echo ""

# 4. مسح الـ Cache
echo "🧹 4. مسح الـ Cache..."
php artisan optimize:clear
php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear
echo "✅ تم مسح الـ Cache"
echo ""

# 5. إعادة بناء الـ Cache
echo "🔨 5. إعادة بناء التحسينات..."
php artisan config:cache
php artisan route:cache
php artisan view:cache
echo "✅ تم إعادة البناء"
echo ""

# 6. التحقق من قاعدة البيانات
echo "🔍 6. التحقق من التحديثات..."
php -r "
require 'vendor/autoload.php';
\$app = require_once 'bootstrap/app.php';
\$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();

use Illuminate\Support\Facades\Schema;

\$hasAddress = Schema::hasColumn('customers', 'address');
\$hasAddress1 = Schema::hasColumn('customers', 'address_1');

echo 'جدول customers:' . PHP_EOL;
echo '  - address: ' . (\$hasAddress ? '❌ لا يزال موجود' : '✅ تم الحذف') . PHP_EOL;
echo '  - address_1: ' . (\$hasAddress1 ? '✅ موجود' : '❌ غير موجود') . PHP_EOL;
"
echo ""

# 7. إعادة تشغيل الموقع
echo "🌐 7. إعادة تشغيل الموقع..."
php artisan up
echo "✅ تم تشغيل الموقع"
echo ""

# 8. ملخص النتائج
echo "============================================"
echo "✅ اكتملت عملية التحديث بنجاح!"
echo "============================================"
echo ""
echo "📋 الإجراءات المنفذة:"
echo "  ✓ نسخة احتياطية لقاعدة البيانات"
echo "  ✓ تحديث جدول customers"
echo "  ✓ تحديث جدول suppliers"
echo "  ✓ تحديث Models والـ Seeders"
echo "  ✓ مسح وإعادة بناء الـ Cache"
echo ""
echo "🔗 رابط الدخول للصيانة:"
echo "   https://your-domain.com/adly-maintenance-2026"
echo ""
echo "⚠️  اختبر النظام الآن!"
echo ""
