#!/bin/bash
# ============================================================
#  SMM Panel - Production Installer
# ============================================================
#  يعمل على أي استضافة (cPanel / VPS / SSH)
#
#  الاستخدام:
#     chmod +x install.sh
#     ./install.sh
# ============================================================

set -e

RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'

echo -e "${CYAN}==========================================${NC}"
echo -e "${CYAN}  تثبيت SMM Panel - نسخة الإنتاج${NC}"
echo -e "${CYAN}==========================================${NC}"
echo ""

# ------------------------------------------------------------
# 1. التحقق من المتطلبات
# ------------------------------------------------------------
echo -e "${YELLOW}[1/8] التحقق من المتطلبات...${NC}"

if ! command -v php >/dev/null 2>&1; then
    echo -e "${RED}خطأ: PHP غير مثبت.${NC}"
    exit 1
fi
PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;")
echo -e "   PHP: ${GREEN}${PHP_VERSION}${NC}"

if ! command -v composer >/dev/null 2>&1; then
    echo -e "${RED}خطأ: Composer غير مثبت.${NC}"
    exit 1
fi
echo -e "   Composer: ${GREEN}OK${NC}"

for ext in mbstring openssl pdo pdo_mysql tokenizer xml ctype json bcmath fileinfo curl; do
    if php -m | grep -qi "^${ext}$"; then
        echo -e "   ext ${ext}: ${GREEN}OK${NC}"
    else
        echo -e "   ext ${ext}: ${RED}مفقود${NC}"
    fi
done

echo ""

# ------------------------------------------------------------
# 2. إنشاء ملف .env
# ------------------------------------------------------------
echo -e "${YELLOW}[2/8] تهيئة ملف البيئة .env...${NC}"

if [ ! -f ".env" ]; then
    cp .env.example .env
    echo -e "   ${GREEN}تم إنشاء .env من .env.example${NC}"
else
    echo -e "   ${BLUE}.env موجود مسبقًا، لن يتم استبداله${NC}"
fi

echo ""

# ------------------------------------------------------------
# 3. تثبيت حزم PHP
# ------------------------------------------------------------
echo -e "${YELLOW}[3/8] تثبيت حزم PHP (composer)...${NC}"
composer install --no-dev --optimize-autoloader --no-interaction
echo -e "   ${GREEN}تم${NC}"
echo ""

# ------------------------------------------------------------
# 4. توليد مفتاح التطبيق
# ------------------------------------------------------------
echo -e "${YELLOW}[4/8] توليد مفتاح التطبيق...${NC}"

if grep -q "^APP_KEY=$" .env || grep -q "^APP_KEY= *$" .env; then
    php artisan key:generate --force
    echo -e "   ${GREEN}تم توليد APP_KEY${NC}"
else
    echo -e "   ${BLUE}APP_KEY موجود مسبقًا${NC}"
fi
echo ""

# ------------------------------------------------------------
# 5. تشغيل الترحيلات
# ------------------------------------------------------------
echo -e "${YELLOW}[5/8] تشغيل ترحيلات قاعدة البيانات...${NC}"
php artisan migrate --force
echo -e "   ${GREEN}تم${NC}"
echo ""

# ------------------------------------------------------------
# 6. تحسين التطبيق
# ------------------------------------------------------------
echo -e "${YELLOW}[6/8] تحسين للتخزين المؤقت للإنتاج...${NC}"
php artisan config:cache
php artisan route:cache
php artisan view:cache
echo -e "   ${GREEN}تم${NC}"
echo ""

# ------------------------------------------------------------
# 7. ضبط الأذونات
# ------------------------------------------------------------
echo -e "${YELLOW}[7/8] ضبط أذونات الملفات...${NC}"
chmod -R 775 storage bootstrap/cache 2>/dev/null || true
find storage bootstrap/cache -type d -exec chmod 775 {} \; 2>/dev/null || true
find storage bootstrap/cache -type f -exec chmod 664 {} \; 2>/dev/null || true
echo -e "   ${GREEN}تم${NC}"
echo ""

# ------------------------------------------------------------
# 8. تعليمات Cron
# ------------------------------------------------------------
echo -e "${YELLOW}[8/8] إعداد المهام المجدولة (Cron)...${NC}"
CRON_PATH=$(pwd)
echo -e "   أضف هذا السطر في Cron Jobs داخل لوحة الاستضافة:"
echo -e "   ${CYAN}* * * * * /usr/bin/php ${CRON_PATH}/artisan schedule:run >> /dev/null 2>&1${NC}"
echo ""

echo -e "${GREEN}==========================================${NC}"
echo -e "${GREEN}  تم تثبيت SMM Panel بنجاح!${NC}"
echo -e "${GREEN}==========================================${NC}"
echo ""
echo -e "لوحة الإدارة: ${CYAN}https://your-domain.com/admin${NC}"
echo ""
echo -e "${YELLOW}ملاحظات مهمة:${NC}"
echo -e "   - تأكد من ضبط بيانات قاعدة البيانات في ملف .env"
echo -e "   - أضف مهمة Cron أعلاه"
echo -e "   - تأكد أن مجلد الموقع الرئيسي يشير إلى public/"
echo ""