<?php
require_once '../config.php';

// التحقق من تسجيل الدخول
requireLogin();

// التحقق من الصلاحيات
requirePermission('admin');

// إنشاء ملف تسجيل للتصحيح
function debug_log($message) {
    file_put_contents(__DIR__ . '/debug.log', date('Y-m-d H:i:s') . " - " . $message . "\n", FILE_APPEND);
}

debug_log("بداية التنفيذ");

// الحصول على إعدادات الجمعية
$query = "SELECT * FROM settings LIMIT 1";
debug_log("استعلام جلب الإعدادات: " . $query);
$settings = fetchOne($query);
debug_log("الإعدادات المستلمة: " . json_encode($settings));

// معالجة تحديث الإعدادات
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    debug_log("تم استلام طلب POST");
    
    $name = sanitizeInput($_POST['name']);
    $email = sanitizeInput($_POST['email']);
    $phone = sanitizeInput($_POST['phone']);
    $address = sanitizeInput($_POST['address']);
    $city = sanitizeInput($_POST['city']);
    $description = sanitizeInput($_POST['description']);
    $foundingDate = sanitizeInput($_POST['founding_date']);
    
    debug_log("البيانات المستلمة: name=$name, email=$email, phone=$phone, address=$address, city=$city, description=$description, foundingDate=$foundingDate");
    
    // التحقق من البيانات
    $errors = [];
    
    if (empty($name)) {
        $errors[] = 'اسم الجمعية مطلوب';
    }
    
    // إذا لم تكن هناك أخطاء، قم بتحديث الإعدادات
    if (empty($errors)) {
        debug_log("لا توجد أخطاء في البيانات، جاري التحديث");
        
        // التحقق من وجود سجل في جدول الإعدادات
        $checkQuery = "SELECT COUNT(*) as count FROM settings";
        debug_log("استعلام التحقق من وجود الإعدادات: " . $checkQuery);
        $count = fetchOne($checkQuery)['count'] ?? 0;
        debug_log("عدد السجلات الموجودة: " . $count);
        
        if ($count == 0) {
            debug_log("لا توجد سجلات، سيتم إنشاء سجل جديد");
            // إذا لم يكن هناك سجل، قم بإنشاء واحد جديد
            $query = "INSERT INTO settings (
                name, email, phone, address, city, description, founding_date, created_at, updated_at
            ) VALUES (
                :name, :email, :phone, :address, :city, :description, :founding_date, :created_at, :updated_at
            )";
            
            $params = [
                ':name' => $name,
                ':email' => $email,
                ':phone' => $phone,
                ':address' => $address,
                ':city' => $city,
                ':description' => $description,
                ':founding_date' => $foundingDate,
                ':created_at' => date('Y-m-d H:i:s'),
                ':updated_at' => date('Y-m-d H:i:s')
            ];
            
            debug_log("استعلام الإدخال: " . $query);
            debug_log("معلمات الإدخال: " . json_encode($params));
            
            try {
                $result = insert($query, $params);
                debug_log("نتيجة الإدخال: " . $result);
            } catch (Exception $e) {
                debug_log("خطأ أثناء الإدخال: " . $e->getMessage());
            }
        } else {
            debug_log("توجد سجلات، سيتم تحديث السجل الأول");
            // إذا كان هناك سجل، قم بتحديثه
            $query = "UPDATE settings SET 
                      name = :name, 
                      email = :email, 
                      phone = :phone, 
                      address = :address, 
                      city = :city, 
                      description = :description, 
                      founding_date = :founding_date, 
                      updated_at = :updated_at 
                      WHERE id = 1";
            
            $params = [
                ':name' => $name,
                ':email' => $email,
                ':phone' => $phone,
                ':address' => $address,
                ':city' => $city,
                ':description' => $description,
                ':founding_date' => $foundingDate,
                ':updated_at' => date('Y-m-d H:i:s')
            ];
            
            debug_log("استعلام التحديث: " . $query);
            debug_log("معلمات التحديث: " . json_encode($params));
            
            try {
                $result = executeQuery($query, $params);
                debug_log("تم تنفيذ استعلام التحديث. نتيجة التحديث: " . ($result ? "نجاح" : "فشل"));
            } catch (Exception $e) {
                debug_log("خطأ أثناء التحديث: " . $e->getMessage());
            }
        }
        
        // معالجة تحميل الشعار إذا تم تحديده
        if (isset($_FILES['logo']) && $_FILES['logo']['size'] > 0) {
            debug_log("تم تحميل ملف الشعار");
            $uploadDir = LOGO_PATH;
            
            // التأكد من وجود المجلد
            if (!file_exists($uploadDir)) {
                mkdir($uploadDir, 0777, true);
                debug_log("تم إنشاء مجلد الشعار: " . $uploadDir);
            }
            
            $fileName = 'logo.' . pathinfo($_FILES['logo']['name'], PATHINFO_EXTENSION);
            $targetFile = $uploadDir . '/' . $fileName;
            
            debug_log("اسم ملف الشعار: " . $fileName);
            debug_log("مسار ملف الشعار: " . $targetFile);
            
            // التحقق من نوع الملف
            $allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
            if (in_array($_FILES['logo']['type'], $allowedTypes)) {
                // نقل الملف إلى المجلد المحدد
                if (move_uploaded_file($_FILES['logo']['tmp_name'], $targetFile)) {
                    debug_log("تم نقل ملف الشعار بنجاح");
                    $query = "UPDATE settings SET logo = :logo WHERE id = 1";
                    try {
                        $logoResult = executeQuery($query, [':logo' => $fileName]);
                        debug_log("تم تحديث مسار الشعار في قاعدة البيانات: " . ($logoResult ? "نجاح" : "فشل"));
                    } catch (Exception $e) {
                        debug_log("خطأ أثناء تحديث مسار الشعار: " . $e->getMessage());
                    }
                } else {
                    debug_log("فشل في نقل ملف الشعار");
                }
            } else {
                debug_log("نوع الملف غير مسموح: " . $_FILES['logo']['type']);
            }
        }
        
        // الحصول على إعدادات الجمعية بعد التحديث
        $query = "SELECT * FROM settings LIMIT 1";
        debug_log("استعلام جلب الإعدادات بعد التحديث: " . $query);
        $settingsAfterUpdate = fetchOne($query);
        debug_log("الإعدادات بعد التحديث: " . json_encode($settingsAfterUpdate));
        
        setAlert('success', 'تم تحديث إعدادات الجمعية بنجاح');
        header('Location: ' . SITE_URL . '/settings/association.php');
        exit;
    } else {
        $errorMessage = implode('<br>', $errors);
        setAlert('danger', $errorMessage);
        debug_log("أخطاء التحقق: " . $errorMessage);
    }
}

// عنوان الصفحة
$pageTitle = 'إعدادات الجمعية';

// تضمين ملف الهيدر
include '../includes/header.php';
?>

<div class="d-flex justify-content-between align-items-center mb-4">
    <h1 class="h3 mb-0"><i class="fas fa-building me-2"></i> إعدادات الجمعية</h1>
</div>

<div class="card">
    <div class="card-body">
        <form method="post" enctype="multipart/form-data">
            <div class="row">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label for="name" class="form-label">اسم الجمعية <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" id="name" name="name" value="<?php echo isset($settings['name']) ? htmlspecialchars($settings['name']) : ''; ?>" required>
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label for="founding_date" class="form-label">تاريخ التأسيس</label>
                        <input type="date" class="form-control" id="founding_date" name="founding_date" value="<?php echo isset($settings['founding_date']) ? htmlspecialchars($settings['founding_date']) : ''; ?>">
                    </div>
                </div>
            </div>
            
            <div class="row">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label for="email" class="form-label">البريد الإلكتروني</label>
                        <input type="email" class="form-control" id="email" name="email" value="<?php echo isset($settings['email']) ? htmlspecialchars($settings['email']) : ''; ?>">
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label for="phone" class="form-label">رقم الهاتف</label>
                        <input type="text" class="form-control" id="phone" name="phone" value="<?php echo isset($settings['phone']) ? htmlspecialchars($settings['phone']) : ''; ?>">
                    </div>
                </div>
            </div>
            
            <div class="row">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label for="address" class="form-label">العنوان</label>
                        <input type="text" class="form-control" id="address" name="address" value="<?php echo isset($settings['address']) ? htmlspecialchars($settings['address']) : ''; ?>">
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label for="city" class="form-label">المدينة</label>
                        <input type="text" class="form-control" id="city" name="city" value="<?php echo isset($settings['city']) ? htmlspecialchars($settings['city']) : ''; ?>">
                    </div>
                </div>
            </div>
            
            <div class="mb-3">
                <label for="description" class="form-label">وصف الجمعية</label>
                <textarea class="form-control" id="description" name="description" rows="4"><?php echo isset($settings['description']) ? htmlspecialchars($settings['description']) : ''; ?></textarea>
            </div>
            
            <div class="mb-3">
                <label for="logo" class="form-label">شعار الجمعية</label>
                <?php if (isset($settings['logo']) && !empty($settings['logo'])): ?>
                    <div class="mb-2">
                        <img src="<?php echo SITE_URL; ?>/uploads/logo/<?php echo htmlspecialchars($settings['logo']); ?>" alt="شعار الجمعية" class="img-thumbnail" style="max-height: 100px;">
                    </div>
                <?php endif; ?>
                <input type="file" class="form-control" id="logo" name="logo">
                <small class="form-text text-muted">اترك هذا الحقل فارغًا إذا كنت لا ترغب في تغيير الشعار الحالي.</small>
            </div>
            
            <div class="text-end">
                <button type="submit" class="btn btn-primary">
                    <i class="fas fa-save me-1"></i> حفظ الإعدادات
                </button>
            </div>
        </form>
    </div>
</div>

<?php
// تضمين ملف الفوتر
include '../includes/footer.php';
?>
