{% extends 'school/base.html.twig' %}

{% block title %}Étudiants | SALSABIL Madrassas{% endblock %}

{% block content %}
    {% set is_archive_scope = scope == 'archives' %}
    {% set is_all_scope = scope == 'all' %}
    <div class="admin-page-stack">
        <section class="admin-page-header">
            <div>
                <p class="admin-eyebrow">ÉTUDIANTS</p>
                <h1 class="admin-page-title">
                    {% if is_archive_scope %}Anciens étudiants / archives{% elseif is_all_scope %}Tous les étudiants{% else %}Étudiants de l’année en cours{% endif %}
                </h1>
                <p>
                    {% if is_archive_scope %}
                        Étudiants rattachés aux années passées ou archivés. Ils ne sont pas mélangés avec l’année en cours.
                    {% else %}
                        Liste limitée aux apprenants actifs de {{ ecole.nom }}{% if currentAnnee %} pour {{ currentAnnee.libelle }}{% endif %}.
                    {% endif %}
                </p>
            </div>
            <div class="admin-hero-actions">
                <a class="admin-btn admin-btn-light" href="{{ path('school_etudiant_import') }}">Importer Excel</a>
                <a class="admin-btn admin-btn-primary" href="{{ path('school_etudiant_new') }}">Nouvel étudiant</a>
            </div>
        </section>

        <section class="school-summary-grid">
            <a class="school-summary-card {{ scope == 'current' ? 'is-active' : '' }}" href="{{ path('school_etudiant_index', {scope: 'current'}) }}">
                <span>Vue par défaut</span>
                <strong>Année en cours</strong>
            </a>
            <a class="school-summary-card {{ scope == 'archives' ? 'is-active' : '' }}" href="{{ path('school_etudiant_index', {scope: 'archives'}) }}">
                <span>Historique</span>
                <strong>Anciens / archives</strong>
            </a>
            <a class="school-summary-card {{ scope == 'all' ? 'is-active' : '' }}" href="{{ path('school_etudiant_index', {scope: 'all'}) }}">
                <span>Recherche globale</span>
                <strong>Toutes les années</strong>
            </a>
        </section>

        <section class="admin-card">
            <form class="admin-form" method="get">
                <input type="hidden" name="scope" value="{{ scope }}">
                <div class="admin-form-three-cols">
                    <input class="form-control" name="q" value="{{ search }}" placeholder="Rechercher nom, téléphone ou matricule">
                    <select class="form-select" name="annee" aria-label="Année scolaire">
                        {% if scope != 'current' %}
                            <option value="">Toutes les années concernées</option>
                        {% endif %}
                        {% for annee in annees %}
                            <option value="{{ annee.id }}" {{ currentAnnee and currentAnnee.id == annee.id ? 'selected' : '' }}>
                                {{ annee.libelle }}{% if anneeEnCours and annee.id == anneeEnCours.id %} · année en cours{% endif %}
                            </option>
                        {% else %}
                            <option value="">Aucune année active</option>
                        {% endfor %}
                    </select>
                    <button class="admin-btn admin-btn-primary" type="submit">Filtrer</button>
                </div>
                <div class="admin-form-actions">
                    <a class="admin-btn admin-btn-light" href="{{ path('school_etudiant_index', {scope: scope}) }}">Réinitialiser</a>
                </div>
            </form>
        </section>

        <section class="admin-card admin-table-card">
            <div class="admin-card-head">
                <div>
                    <h2>Apprenants enregistrés</h2>
                    <p>{{ etudiants|length }} étudiant(s) dans cette vue.</p>
                </div>
            </div>
            {% if etudiants is empty %}
                <div class="admin-empty-state">
                    <span class="material-symbols-outlined">school</span>
                    <strong>Aucun étudiant trouvé</strong>
                    <p>Changez les filtres ou importez les anciens étudiants via le modèle Excel.</p>
                </div>
            {% else %}
                <div class="table-responsive">
                    <table class="table admin-table school-table align-middle mb-0">
                        <thead>
                        <tr>
                            <th>Matricule</th>
                            <th>Nom complet</th>
                            <th>Année</th>
                            <th>Type</th>
                            <th>Téléphone</th>
                            <th>Affectation</th>
                            <th>Statut</th>
                            <th class="text-end">Actions</th>
                        </tr>
                        </thead>
                        <tbody>
                        {% for etudiant in etudiants %}
                            {% set is_old_year = anneeEnCours and etudiant.anneeScolaire and etudiant.anneeScolaire.id != anneeEnCours.id %}
                            <tr>
                                <td><strong>{{ etudiant.matricule ?: etudiant.matriculeTemporaire ?: '-' }}</strong></td>
                                <td>
                                    <div class="school-table-title">
                                        <strong>{{ etudiant.nomComplet }}</strong>
                                        <small>{{ etudiant.sexe ?: 'Sexe non renseigné' }}</small>
                                    </div>
                                </td>
                                <td>{{ etudiant.anneeScolaire ? etudiant.anneeScolaire.libelle : 'Non liée' }}</td>
                                <td>
                                    {% include 'components/admin/status_badge.html.twig' with {label: (etudiant.ancien or is_old_year) ? 'Ancien' : 'Nouveau', tone: (etudiant.ancien or is_old_year) ? 'warning' : 'info'} only %}
                                </td>
                                <td>{{ etudiant.telephoneWhatsapp ?: etudiant.telephonePrincipal ?: '-' }}</td>
                                <td>
                                    {% set active_parcours = etudiant.parcours|filter(parcours => parcours.actif) %}
                                    {% set principal_parcours = active_parcours|filter(parcours => parcours.principal)|first ?: active_parcours|first %}
                                    {% if principal_parcours %}
                                        {{ principal_parcours.classe ? principal_parcours.classe.nom : (principal_parcours.section ? principal_parcours.section.nom : '-') }}
                                        {% if principal_parcours.niveau %}<small class="d-block">{{ principal_parcours.niveau.nom }}</small>{% endif %}
                                        {% if active_parcours|length > 1 %}<small class="d-block text-muted">+ {{ active_parcours|length - 1 }} autre{{ active_parcours|length > 2 ? 's' : '' }} parcours</small>{% endif %}
                                    {% else %}
                                        {{ etudiant.classe ? etudiant.classe.nom : (etudiant.section ? etudiant.section.nom : '-') }}
                                    {% endif %}
                                </td>
                                <td>{% include 'components/admin/status_badge.html.twig' with {label: etudiant.actif ? 'Actif' : 'Archivé', tone: etudiant.actif ? 'success' : 'neutral'} only %}</td>
                                <td>
                                    <div class="admin-actions">
                                        <a class="admin-action-button" href="{{ path('school_etudiant_show', {id: etudiant.id}) }}">Voir</a>
                                        <a class="admin-action-button" href="{{ path('school_etudiant_edit', {id: etudiant.id}) }}">Modifier</a>
                                        <form method="post" action="{{ path('school_etudiant_delete', {id: etudiant.id}) }}" onsubmit="return confirm('Supprimer définitivement cet étudiant ? Les dossiers d’inscription liés seront conservés mais détachés.');">
                                            <input type="hidden" name="_token" value="{{ csrf_token('delete_etudiant_' ~ etudiant.id) }}">
                                            <button class="admin-action-button admin-action-danger" type="submit">Supprimer</button>
                                        </form>
                                    </div>
                                </td>
                            </tr>
                        {% endfor %}
                        </tbody>
                    </table>
                </div>
            {% endif %}
        </section>
    </div>
{% endblock %}
