{# templates/product/index.html.twig #}
{% extends 'base.html.twig' %}

{% block title %}Nos produits - Marketplace{% endblock %}

{% block body %}
<div class="container mx-auto px-4 py-8">
    <!-- Page Header -->
    <div class="mb-8">
        <h1 class="text-3xl font-bold mb-2">Nos produits</h1>
        <p class="text-gray-600">Découvrez notre sélection de produits de qualité</p>
    </div>
    
    <div class="flex flex-col lg:flex-row gap-8">
        <!-- Filters Sidebar -->
        <aside class="lg:w-1/4">
            <div class="bg-white rounded-lg shadow p-6 sticky top-24">
                <h3 class="font-semibold text-lg mb-4">Filtres</h3>
                
                <form action="{{ path('product_index') }}" method="GET" id="filter-form">
                    <!-- Categories -->
                    <div class="mb-6">
                        <label class="block font-medium mb-2">Catégories</label>
                        <select name="category" class="w-full border rounded-lg px-3 py-2" onchange="this.form.submit()">
                            <option value="">Toutes les catégories</option>
                            {% for category in categories %}
                                <option value="{{ category.id }}" {% if selectedCategory == category.id %}selected{% endif %}>
                                    {{ category.name }}
                                </option>
                            {% endfor %}
                        </select>
                    </div>
                    
                    <!-- Price Range -->
                    <div class="mb-6">
                        <label class="block font-medium mb-2">Prix</label>
                        <div class="flex gap-2">
                            <input type="number" name="min_price" placeholder="Min" value="{{ minPrice }}"
                                   class="w-1/2 border rounded-lg px-3 py-2" onchange="this.form.submit()">
                            <input type="number" name="max_price" placeholder="Max" value="{{ maxPrice }}"
                                   class="w-1/2 border rounded-lg px-3 py-2" onchange="this.form.submit()">
                        </div>
                    </div>
                    
                    <!-- Sort -->
                    <div class="mb-6">
                        <label class="block font-medium mb-2">Trier par</label>
                        <select name="sort" class="w-full border rounded-lg px-3 py-2" onchange="this.form.submit()">
                            <option value="newest" {% if sort == 'newest' %}selected{% endif %}>Plus récents</option>
                            <option value="price_asc" {% if sort == 'price_asc' %}selected{% endif %}>Prix croissant</option>
                            <option value="price_desc" {% if sort == 'price_desc' %}selected{% endif %}>Prix décroissant</option>
                            <option value="popular" {% if sort == 'popular' %}selected{% endif %}>Plus populaires</option>
                        </select>
                    </div>
                    
                    <!-- Vendor Filter (for admins/vendors) -->
                    {% if is_granted('ROLE_ADMIN') and vendors|length > 0 %}
                        <div class="mb-6">
                            <label class="block font-medium mb-2">Vendeur</label>
                            <select name="vendor" class="w-full border rounded-lg px-3 py-2" onchange="this.form.submit()">
                                <option value="">Tous les vendeurs</option>
                                {% for vendor in vendors %}
                                    <option value="{{ vendor.id }}" {% if selectedVendor == vendor.id %}selected{% endif %}>
                                        {{ vendor.storeName }}
                                    </option>
                                {% endfor %}
                            </select>
                        </div>
                    {% endif %}
                    
                    <button type="reset" class="w-full bg-gray-200 text-gray-700 py-2 rounded-lg hover:bg-gray-300 transition" onclick="window.location.href='{{ path('product_index') }}'">
                        Réinitialiser
                    </button>
                </form>
            </div>
        </aside>
        
        <!-- Products Grid -->
        <main class="lg:w-3/4">
            <!-- Results count -->
            <div class="mb-4 text-gray-600">
                {{ pagination.totalItems }} produit(s) trouvé(s)
            </div>
            
            <!-- Products Grid -->
            <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
                {% for product in products %}
                    {% include 'components/product_card.html.twig' with {product: product} %}
                {% else %}
                    <div class="col-span-full text-center py-12">
                        <i class="fas fa-search text-6xl text-gray-300 mb-4"></i>
                        <p class="text-gray-500 text-lg">Aucun produit trouvé</p>
                        <a href="{{ path('product_index') }}" class="text-primary-600 hover:underline mt-2 inline-block">
                            Voir tous les produits
                        </a>
                    </div>
                {% endfor %}
            </div>
            
            <!-- Pagination -->
            {% if pagination.totalPages > 1 %}
                <div class="mt-8 flex justify-center">
                    <nav class="flex items-center space-x-2">
                        {% if pagination.currentPage > 1 %}
                            <a href="{{ path('product_index', {page: pagination.currentPage - 1, category: selectedCategory, sort: sort, min_price: minPrice, max_price: maxPrice, vendor: selectedVendor}) }}" 
                               class="px-3 py-2 border rounded-lg hover:bg-gray-50">
                                <i class="fas fa-chevron-left"></i>
                            </a>
                        {% endif %}
                        
                        {% set startPage = max(1, pagination.currentPage - 2) %}
                        {% set endPage = min(pagination.totalPages, pagination.currentPage + 2) %}
                        
                        {% if startPage > 1 %}
                            <a href="{{ path('product_index', {page: 1, category: selectedCategory, sort: sort, min_price: minPrice, max_price: maxPrice, vendor: selectedVendor}) }}" 
                               class="px-3 py-2 border rounded-lg hover:bg-gray-50">1</a>
                            {% if startPage > 2 %}
                                <span class="px-3 py-2">...</span>
                            {% endif %}
                        {% endif %}
                        
                        {% for page in startPage..endPage %}
                            {% if page == pagination.currentPage %}
                                <span class="px-3 py-2 bg-primary-600 text-white rounded-lg">{{ page }}</span>
                            {% else %}
                                <a href="{{ path('product_index', {page: page, category: selectedCategory, sort: sort, min_price: minPrice, max_price: maxPrice, vendor: selectedVendor}) }}" 
                                   class="px-3 py-2 border rounded-lg hover:bg-gray-50">
                                    {{ page }}
                                </a>
                            {% endif %}
                        {% endfor %}
                        
                        {% if endPage < pagination.totalPages %}
                            {% if endPage < pagination.totalPages - 1 %}
                                <span class="px-3 py-2">...</span>
                            {% endif %}
                            <a href="{{ path('product_index', {page: pagination.totalPages, category: selectedCategory, sort: sort, min_price: minPrice, max_price: maxPrice, vendor: selectedVendor}) }}" 
                               class="px-3 py-2 border rounded-lg hover:bg-gray-50">
                                {{ pagination.totalPages }}
                            </a>
                        {% endif %}
                        
                        {% if pagination.currentPage < pagination.totalPages %}
                            <a href="{{ path('product_index', {page: pagination.currentPage + 1, category: selectedCategory, sort: sort, min_price: minPrice, max_price: maxPrice, vendor: selectedVendor}) }}" 
                               class="px-3 py-2 border rounded-lg hover:bg-gray-50">
                                <i class="fas fa-chevron-right"></i>
                            </a>
                        {% endif %}
                    </nav>
                </div>
            {% endif %}
        </main>
    </div>
</div>
{% endblock %}