<?php
include '../../includes/header.php';
checkLogin();
$db = getDB();
$userId = $_SESSION['user_id'] ?? null;

// --- معالجة الإضافة أو التعديل ---
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $category_name = htmlspecialchars($_POST['category_name'] ?? '');
    $edit_id = $_POST['edit_id'] ?? null;

    if (!empty($category_name)) {
        if ($edit_id) {
            // تعديل
            $sql = "UPDATE expense_categories SET category_name = ?, updated_at = NOW() WHERE id = ?";
            $db->update($sql, [$category_name, $edit_id]);
            $_SESSION['success_message'] = 'تم تعديل الفئة بنجاح.';
        } else {
            // إضافة
            $sql = "INSERT INTO expense_categories (category_name, created_by) VALUES (?, ?)";
            $db->insert($sql, [$category_name, $userId]);
            $_SESSION['success_message'] = 'تم إضافة الفئة بنجاح.';
        }
        header('Location: categories.php'); // إعادة تحميل الصفحة
        exit();
    } else {
        $_SESSION['error_message'] = 'الرجاء إدخال اسم الفئة.';
    }
}

// --- معالجة الحذف ---
if (isset($_GET['delete_id'])) {
    $delete_id = $_GET['delete_id'];
    $db->delete("DELETE FROM expense_categories WHERE id = ?", [$delete_id]);
    $_SESSION['success_message'] = 'تم حذف الفئة بنجاح.';
    header('Location: categories.php');
    exit();
}

// --- جلب جميع الفئات ---
$categories = $db->select("SELECT * FROM expense_categories ORDER BY created_at DESC");

// --- بيانات التعديل إذا تم اختيار فئة ---
$editCategory = null;
if (isset($_GET['edit_id'])) {
    $edit_id = $_GET['edit_id'];
    $editCategory = $db->select("SELECT * FROM expense_categories WHERE id = ?", [$edit_id])[0] ?? null;
}
?>

<div class="container py-4">
    <h2>إدارة فئات المصروفات</h2>

    <?php include '../../includes/alerts.php'; ?>

    <!-- نموذج الإضافة / التعديل -->
    <div class="card mb-4 shadow-sm">
        <div class="card-body">
            <h5><?php echo $editCategory ? 'تعديل الفئة' : 'إضافة فئة جديدة'; ?></h5>
            <form method="POST">
                <input type="hidden" name="edit_id" value="<?php echo $editCategory['id'] ?? ''; ?>">
                <div class="mb-3">
                    <label class="form-label">اسم الفئة</label>
                    <input type="text" name="category_name" class="form-control" value="<?php echo htmlspecialchars($editCategory['category_name'] ?? ''); ?>" required>
                </div>
                <button type="submit" class="btn btn-primary"><?php echo $editCategory ? 'حفظ التعديل' : 'إضافة'; ?></button>
                <?php if ($editCategory): ?>
                    <a href="categories.php" class="btn btn-secondary">إلغاء</a>
                <?php endif; ?>
            </form>
        </div>
    </div>

    <!-- جدول الفئات -->
    <table class="table table-bordered">
        <thead>
            <tr>
                <th>#</th>
                <th>اسم الفئة</th>
                <th>أنشئ بواسطة</th>
                <th>تاريخ الإنشاء</th>
                <th>آخر تحديث</th>
                <th>الإجراءات</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($categories as $category): ?>
            <tr>
                <td><?php echo $category['id']; ?></td>
                <td><?php echo htmlspecialchars($category['category_name']); ?></td>
                <td><?php echo $category['created_by']; ?></td>
                <td><?php echo $category['created_at']; ?></td>
                <td><?php echo $category['updated_at']; ?></td>
                <td>
                    <a href="categories.php?edit_id=<?php echo $category['id']; ?>" class="btn btn-sm btn-warning">تعديل</a>
                    <a href="categories.php?delete_id=<?php echo $category['id']; ?>" class="btn btn-sm btn-danger" onclick="return confirm('هل أنت متأكد من حذف الفئة؟')">حذف</a>
                </td>
            </tr>
            <?php endforeach; ?>
        </tbody>
    </table>
</div>

<?php include '../../includes/footer.php'; ?>
