{% extends 'base.html' %}
{% block title %}Gestión de Usuarios{% endblock %}

{% block content %}
<div class="container-fluid mt-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2 class="mb-0">Gestión de Usuarios</h2>
        <div>
            {% if user.is_superuser %}
                <a href="{% url 'gestion_usuarios:importar_usuarios' %}" class="btn btn-success me-2">Carga Masiva</a>
            {% endif %}

            <a href="{% url 'gestion_usuarios:crear_usuario' %}" class="btn btn-primary">
                Registrar Nuevo Usuario
            </a>
        </div>
    </div>

    <!-- Formulario de Búsqueda -->
    <div class="card shadow-sm mb-4">
        <div class="card-body">
            <form method="get" action="{% url 'gestion_usuarios:listar_usuarios' %}" id="search-form">
                <div class="input-group">
                    <input type="text" name="q" class="form-control" id="search-input" placeholder="Buscar por nombre, apellido, email o cargo..." value="{{ query }}">
                </div>
            </form>
        </div>
    </div>

    <!-- Tabla de Usuarios -->
    <div class="card shadow">
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-bordered table-striped">
                    <thead class="thead-dark">
                        <tr>
                            <th>Nombre</th>
                            <th>Apellido</th>
                            <th>Email</th>
                            <th>Cargo</th>
                            <th>Acciones</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% for usuario in usuarios %}
                        <tr>
                            <td>{{ usuario.nombre }}</td>
                            <td>{{ usuario.apellido }}</td>
                            <td>{{ usuario.email }}</td>
                            <td>{{ usuario.cargo }}</td>
                            <td>
                                <a href="{% url 'gestion_usuarios:detalle_usuario' usuario.pk %}" class="btn btn-sm btn-primary">Detalle</a>
                                <a href="{% url 'gestion_usuarios:editar_usuario' usuario.pk %}" class="btn btn-sm btn-warning">Editar</a>
                                <a href="{% url 'gestion_usuarios:eliminar_usuario' usuario.pk %}" class="btn btn-sm btn-danger">Eliminar</a>
                            </td>
                        </tr>
                        {% empty %}
                        <tr>
                            <td colspan="5" class="text-center">No hay usuarios registrados que coincidan con la búsqueda.</td>
                        </tr>
                        {% endfor %}
                    </tbody>
                </table>
            </div>
        </div>
    </div>

    <!-- Paginación -->
    {% if usuarios.has_other_pages %}
    <nav aria-label="Navegación de páginas" class="mt-4">
        <ul class="pagination justify-content-center">
            {# Botón 'Anterior' #}
            {% if usuarios.has_previous %}
                <li class="page-item">
                    <a class="page-link" href="?page={{ usuarios.previous_page_number }}&q={{ query }}">Anterior</a>
                </li>
            {% else %}
                <li class="page-item disabled">
                    <span class="page-link">Anterior</span>
                </li>
            {% endif %}

            {# Números de página #}
            {% for i in usuarios.paginator.page_range %}
                {% if usuarios.number == i %}
                    <li class="page-item active" aria-current="page">
                        <span class="page-link">{{ i }}</span>
                    </li>
                {% else %}
                    <li class="page-item"><a class="page-link" href="?page={{ i }}&q={{ query }}">{{ i }}</a></li>
                {% endif %}
            {% endfor %}

            {# Botón 'Siguiente' #}
            {% if usuarios.has_next %}
                <li class="page-item">
                    <a class="page-link" href="?page={{ usuarios.next_page_number }}&q={{ query }}">Siguiente</a>
                </li>
            {% else %}
                <li class="page-item disabled">
                    <span class="page-link">Siguiente</span>
                </li>
            {% endif %}
        </ul>
    </nav>
    {% endif %}

</div>
{% endblock %}

{% block extra_js %}
<script>
    document.addEventListener('DOMContentLoaded', function() {
        const searchInput = document.getElementById('search-input');
        const searchForm = document.getElementById('search-form');
        let debounceTimer;

        searchInput.addEventListener('input', () => {
            clearTimeout(debounceTimer);
            debounceTimer = setTimeout(() => {
                searchForm.submit();
            }, 500);
        });
    });
</script>
{% endblock %}
