/*
Theme Name: Mohair
Theme URI: https://mohair.qodeinteractive.com
Description: Tailor and Fashion Theme
Author: Mikado Themes
Author URI: https://qodeinteractive.com
Text Domain: mohair
Tags: one-column, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, custom-menu, featured-images, flexible-header, post-formats, sticky-post, threaded-comments, translation-ready
Version: 1.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/


add_action('rest_api_init', function () {
    register_rest_route('custom/v1', '/home/slider', array(
        'methods' => 'GET',
        'callback' => 'get_slider_data',
        'permission_callback' => '__return_true' // متاح للجميع
    ));
});

function get_slider_data() {
    if (class_exists('RevSlider')) {
        // استبدل 'main-slider' بالـ Alias الخاص بالسلايدر الذي تريده
        $slider_alias = 'main-slider'; 
        $slider = new RevSlider();
        $slider->initByAlias($slider_alias);
        $slides = $slider->getSlides();
        
        $slider_data = array();

        if (!empty($slides)) {
            foreach ($slides as $slide) {
                $image_url = $slide->getImageUrl();
                // هذا مثال بسيط، قد تحتاج لتعديله حسب طبقات النص لديك
                $title = isset($slide->getParams()['title']) ? $slide->getParams()['title'] : '';

                $slider_data[] = array(
                    'image' => $image_url,
                    'title' => $title,
                );
            }
        }
        return new WP_REST_Response($slider_data, 200);
    }
    return new WP_Error('no_slider', 'Slider Revolution not found.', array('status' => 404));
}


add_action('rest_api_init', function () {
    register_rest_route('custom/v1', '/events/upcoming', array(
        'methods' => 'GET',
        'callback' => 'get_upcoming_events',
        'permission_callback' => '__return_true'
    ));
});

function get_upcoming_events() {
    $args = array(
        'post_type' => 'event', // استبدل 'event' باسم نوع المنشور المخصص للفعاليات
        'posts_per_page' => 5,
        'meta_key' => 'event_date', // افترض أن تاريخ الفعالية مخزن في حقل مخصص
        'meta_value' => date('Y-m-d'), // تاريخ اليوم
        'meta_compare' => '>=', // جلب الفعاليات التي تاريخها اليوم أو بعده
        'orderby' => 'meta_value',
        'order' => 'ASC'
    );
    $events = get_posts($args);
    // يمكنك إضافة المزيد من التفاصيل هنا
    return new WP_REST_Response($events, 200);
}

add_action('rest_api_init', function () {
    register_rest_route('custom/v1', '/gallery', array(
        'methods' => 'GET',
        'callback' => 'get_gallery_images',
        'permission_callback' => '__return_true'
    ));
});

function get_gallery_images() {
    $args = array(
        'post_type' => 'attachment',
        'post_status' => 'inherit',
        'posts_per_page' => 20,
        // يمكنك الفلترة حسب تصنيف معين إذا كنت تستخدمه للوسائط
    );
    $query = new WP_Query($args);
    $images = array();
    foreach ($query->posts as $post) {
        $images[] = array(
            'id' => $post->ID,
            'url' => wp_get_attachment_url($post->ID),
            'caption' => $post->post_excerpt,
        );
    }
    return new WP_REST_Response($images, 200);
}
add_action('rest_api_init', function () {
    register_rest_route('custom/v1', '/notifications/unseen-count', array(
        'methods' => 'GET',
        'callback' => 'get_unseen_notifications_count',
        'permission_callback' => function () {
            return is_user_logged_in(); // للمستخدمين المسجلين فقط
        }
    ));
});

function get_unseen_notifications_count() {
    $user_id = get_current_user_id();
    // هذا الكود يعتمد على كيفية تخزينك للإشعارات
    // مثال: $count = get_user_meta($user_id, 'unseen_notifications_count', true);
    $count = 5; // قيمة وهمية للتوضيح
    return new WP_REST_Response(array('count' => $count), 200);
}

add_action('rest_api_init', function () {
    register_rest_route('club/v1', '/posts', array(
        'methods' => 'GET',
        'callback' => 'get_club_posts',
        'permission_callback' => '__return_true'
    ));
});

function get_club_posts($request) {
    $args = array(
        'post_type' => 'club_post',
        'posts_per_page' => $request->get_param('per_page') ?: 10,
        'paged' => $request->get_param('page') ?: 1,
    );
    // يمكنك إضافة فلترة حسب التصنيف هنا
    $posts = get_posts($args);
    // يجب تنسيق الرد ليشمل بيانات الكاتب والتعليقات... الخ
    return new WP_REST_Response($posts, 200);
}
add_action('rest_api_init', function () {
    register_rest_route('custom/v1', '/search', array(
        'methods' => 'GET',
        'callback' => 'advanced_search_results',
        'permission_callback' => '__return_true'
    ));
});

function advanced_search_results($request) {
    $term = $request->get_param('term');
    $args = array(
        'post_type' => array('post', 'page', 'product', 'course'), // ابحث في هذه الأنواع
        's' => sanitize_text_field($term),
    );
    $query = new WP_Query($args);
    return new WP_REST_Response($query->posts, 200);
}
