// ============================================
// CONFIGURATION
// ============================================
const API_BASE_URL = '/est-concours/model/api/inscription.php';
const API_CONCOURS_URL = '/est-concours/model/api/inscription.php?action=concours';
let candidat_ID = null;
// Usage

// ============================================
// CHARGEMENT DES DONNÉES D'INSCRIPTION EXISTANTE
// ============================================

/**
 * Vérifie si une inscription existe pour l'étudiant et le concours sélectionné
 * et charge les données si c'est le cas
 */
async function checkExistingInscription() {
    const concoursSelect = document.getElementById('concours_id');
    const concoursId = concoursSelect.value;

    if (!concoursId) {
        return;
    }


    showSpinner(true);

    try {
        const response = await fetch(`${API_BASE_URL}?action=get_by_candidat_and_concours&candidat_id=${CANDIDAT_ID}&concours_id=${concoursId}`);
        const result = await response.json();

        showSpinner(false);

        if (result.success && result.data) {
            // Une inscription existe, remplir les champs
            fillFormWithExistingData(result.data);
            showNotification('success', 'Les données de votre inscription existante ont été chargées.');
        } else if (result.exists === false) {
            // Aucune inscription trouvée, vider les champs si nécessaire
            // On ne fait rien, l'utilisateur peut saisir de nouvelles données
            console.log('Aucune inscription existante pour ce concours.');
        }
    } catch (error) {
        showSpinner(false);
        console.error('Erreur lors de la vérification de l\'inscription:', error);
    }
}

/**
 * Remplit les formulaires avec les données existantes
 */
function fillFormWithExistingData(data) {

    if (data != null) {
        if (data.civilite) document.getElementById('civilite').value = data.civilite;
        if (data.email) document.getElementById('email').value = data.email;
        if (data.prenom) document.getElementById('prenom').value = data.prenom;
        if (data.nom) document.getElementById('nom').value = data.nom;
        if (data.prenom_arabe) document.getElementById('prenom_arabe').value = data.prenom_arabe;
        if (data.nom_arabe) document.getElementById('nom_arabe').value = data.nom_arabe;
        if (data.cin) document.getElementById('cin').value = data.cin;
        if (data.telephone) document.getElementById('telephone').value = data.telephone;

        if (data.situation_familiale) document.getElementById('situation_familiale').value = data.situation_familiale;
        if (data.date_naissance) document.getElementById('date_naissance').value = data.date_naissance;
        if (data.lieu_naissance) document.getElementById('lieu_naissance').value = data.lieu_naissance;
        if (data.lieu_naissance_arabe) document.getElementById('lieu_naissance_arabe').value = data.lieu_naissance_arabe;
        if (data.province_naissance) document.getElementById('province_naissance').value = data.province_naissance;
        if (data.nationalite) document.getElementById('nationalite').value = data.nationalite;

        if (data.adresse) document.getElementById('adresse').value = data.adresse;
        if (data.adresse_arabe) document.getElementById('adresse_arabe').value = data.adresse_arabe;
        if (data.code_postal) document.getElementById('code_postal').value = data.code_postal;
        if (data.province_residence) document.getElementById('province_residence').value = data.province_residence;

        if (data.situation_professionnelle) document.getElementById('situation_professionnelle').value = data.situation_professionnelle;


        if (data.code_massar) document.getElementById('code_massar').value = data.code_massar;
        if (data.annee_bac) document.getElementById('annee_bac').value = data.annee_bac;
        if (data.specialite_bac) document.getElementById('specialite_bac').value = data.specialite_bac;
        if (data.mention_bac) document.getElementById('mention_bac').value = data.mention_bac;
        if (data.type_etablissement_bac) document.getElementById('type_etablissement_bac').value = data.type_etablissement_bac;
        if (data.province_bac) document.getElementById('province_bac').value = data.province_bac;
        if (data.moyenne_bac) document.getElementById('moyenne_bac').value = data.moyenne_bac;

        if (data.type_diplome) document.getElementById('type_diplome').value = data.type_diplome;
        if (data.specialite_diplome) document.getElementById('specialite_diplome').value = data.specialite_diplome;
        if (data.annee_diplome) document.getElementById('annee_diplome').value = data.annee_diplome;
        if (data.etablissement_origine) document.getElementById('etablissement_origine').value = data.etablissement_origine;
        if (data.modules_valides) document.getElementById('modules_valides').value = data.modules_valides;
        if (data.duree_diplome) document.getElementById('duree_diplome').value = data.duree_diplome;

        if (data.note_semstre1 || data.note_s1) {
            document.getElementById('note_s1').value = data.note_semstre1 || data.note_s1;
        }
        if (data.note_semstre2 || data.note_s2) {
            document.getElementById('note_s2').value = data.note_semstre2 || data.note_s2;
        }
        if (data.note_semstre3 || data.note_s3) {
            document.getElementById('note_s3').value = data.note_semstre3 || data.note_s3;
        }
        if (data.note_semstre4 || data.note_s4) {
            document.getElementById('note_s4').value = data.note_semstre4 || data.note_s4;
        }
        if (data.note_semstre5 || data.note_s5) {
            document.getElementById('note_s5').value = data.note_semstre5 || data.note_s5;
        }
        if (data.note_semstre6 || data.note_s6) {
            document.getElementById('note_s6').value = data.note_semstre6 || data.note_s6;
        }

        // ============================================
        // Type de diplôme obtenu
        // ============================================
        if (data.type_diplome_obtenu) {
            // Charger d'abord les types pour ce concours
            const concoursId = document.getElementById('concours_id').value;
            if (concoursId) {
                loadTypeDiplomeByConcours(concoursId).then(() => {
                    document.getElementById('type_diplome_obtenu').value = data.type_diplome_obtenu;
                });
            }
        }
        // Recalculer la moyenne générale
        calculateMoyenneGenerale();

        // Sauvegarder les données dans localStorage
        const step1Data = {
            civilite: data.civilite || '',
            email: data.email || '',
            prenom: data.prenom || '',
            nom: data.nom || '',
            prenom_arabe: data.prenom_arabe || '',
            nom_arabe: data.nom_arabe || '',
            cin: data.cin || '',
            telephone: data.telephone || '',
            situation_familiale: data.situation_familiale || '',
            date_naissance: data.date_naissance || '',
            lieu_naissance: data.lieu_naissance || '',
            lieu_naissance_arabe: data.lieu_naissance_arabe || '',
            province_naissance: data.province_naissance || '',
            nationalite: data.nationalite || '',
            adresse: data.adresse || '',
            adresse_arabe: data.adresse_arabe || '',
            code_postal: data.code_postal || '',
            province_residence: data.province_residence || '',
            situation_professionnelle: data.situation_professionnelle || '',
            candidat_id: CANDIDAT_ID,
            concours_id: document.getElementById('concours_id').value
        };

        const step2Data = {
            code_massar: data.code_massar || '',
            annee_bac: data.annee_bac || '',
            specialite_bac: data.specialite_bac || '',
            mention_bac: data.mention_bac || '',
            type_etablissement_bac: data.type_etablissement_bac || '',
            province_bac: data.province_bac || '',
            moyenne_bac: data.moyenne_bac || '',
            type_diplome: data.type_diplome || '',
            specialite_diplome: data.specialite_diplome || '',
            annee_diplome: data.annee_diplome || '',
            etablissement_origine: data.etablissement_origine || '',
            modules_valides: data.modules_valides || '',
            duree_diplome: data.duree_diplome || '2',
            note_s1: data.note_semstre1 || data.note_s1 || '',
            note_s2: data.note_semstre2 || data.note_s2 || '',
            note_s3: data.note_semstre3 || data.note_s3 || '',
            note_s4: data.note_semstre4 || data.note_s4 || '',
            note_s5: data.note_semstre5 || data.note_s5 || '',
            note_s6: data.note_semstre6 || data.note_s6 || '',
            moyenne_generale_calculee: data.moyenne_general_calcule || ''
        };

        localStorage.setItem('step1Data', JSON.stringify(step1Data));
        localStorage.setItem('step2Data', JSON.stringify(step2Data));

        // Supprimer les erreurs éventuelles
        document.querySelectorAll('.form-control, .form-select').forEach(input => {
            input.classList.remove('error');
        });
    } else {
        if (data.civilite) document.getElementById('civilite').value = '';
        if (data.email) document.getElementById('email').value = '';
        if (data.prenom) document.getElementById('prenom').value = '';
        if (data.nom) document.getElementById('nom').value = data.nom;
        if (data.prenom_arabe) document.getElementById('prenom_arabe').value = '';
        if (data.nom_arabe) document.getElementById('nom_arabe').value = '';
        if (data.cin) document.getElementById('cin').value = data.cin;
        if (data.telephone) document.getElementById('telephone').value = '';

        if (data.situation_familiale) document.getElementById('situation_familiale').value = '';
        if (data.date_naissance) document.getElementById('date_naissance').value = '';
        if (data.lieu_naissance) document.getElementById('lieu_naissance').value = '';
        if (data.lieu_naissance_arabe) document.getElementById('lieu_naissance_arabe').value = '';
        if (data.province_naissance) document.getElementById('province_naissance').value = '';
        if (data.nationalite) document.getElementById('nationalite').value = '';

        if (data.adresse) document.getElementById('adresse').value = '';
        if (data.adresse_arabe) document.getElementById('adresse_arabe').value = '';
        if (data.code_postal) document.getElementById('code_postal').value = '';
        if (data.province_residence) document.getElementById('province_residence').value = '';

        if (data.situation_professionnelle) document.getElementById('situation_professionnelle').value = '';


        if (data.code_massar) document.getElementById('code_massar').value = '';
        if (data.annee_bac) document.getElementById('annee_bac').value = '';
        if (data.specialite_bac) document.getElementById('specialite_bac').value = '';
        if (data.mention_bac) document.getElementById('mention_bac').value = '';
        if (data.type_etablissement_bac) document.getElementById('type_etablissement_bac').value = '';
        if (data.province_bac) document.getElementById('province_bac').value = '';
        if (data.moyenne_bac) document.getElementById('moyenne_bac').value = '';

        if (data.type_diplome) document.getElementById('type_diplome').value = '';
        if (data.specialite_diplome) document.getElementById('specialite_diplome').value = '';
        if (data.annee_diplome) document.getElementById('annee_diplome').value = '';
        if (data.etablissement_origine) document.getElementById('etablissement_origine').value = '';
        if (data.modules_valides) document.getElementById('modules_valides').value = '';
        if (data.duree_diplome) document.getElementById('duree_diplome').value = '';

        if (data.note_s1) {
            document.getElementById('note_s1').value = data.note_s1;
        }
        if (data.note_s2) {
            document.getElementById('note_s2').value = data.note_s2;
        }
        if (data.note_s3) {
            document.getElementById('note_s3').value = data.note_s3;
        }
        if (data.note_s4) {
            document.getElementById('note_s4').value = data.note_s4;
        }
        if (data.note_s5) {
            document.getElementById('note_s5').value = data.note_s5;
        }
        if (data.note_s6) {
            document.getElementById('note_s6').value = data.note_s6;
        }

        document.querySelectorAll('.form-control, .form-select').forEach(input => {
            input.classList.remove('error');
        });
    }

}

/**
 * Affiche une notification
 */
function showNotification(type, message) {
    // Créer un conteneur de notification s'il n'existe pas
    let notificationContainer = document.getElementById('notification-container');
    if (!notificationContainer) {
        notificationContainer = document.createElement('div');
        notificationContainer.id = 'notification-container';
        notificationContainer.style.cssText = `
            position: fixed;
            top: 20px;
            right: 20px;
            z-index: 99999;
            max-width: 400px;
            width: 100%;
        `;
        document.body.appendChild(notificationContainer);
    }

    // Créer la notification
    const notification = document.createElement('div');
    const bgColor = type === 'success' ? '#b7d22b' : (type === 'error' ? '#dc3545' : '#00c0ed');
    notification.style.cssText = `
        background: ${bgColor};
        color: white;
        padding: 15px 20px;
        border-radius: 8px;
        margin-bottom: 10px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.15);
        display: flex;
        align-items: center;
        gap: 10px;
        animation: slideInRight 0.3s ease;
        font-weight: 500;
        font-size: 14px;
    `;
    notification.innerHTML = `
        <i class="fas ${type === 'success' ? 'fa-check-circle' : (type === 'error' ? 'fa-exclamation-circle' : 'fa-info-circle')}"></i>
        ${message}
        <button onclick="this.parentElement.remove()" style="background:transparent;border:none;color:white;cursor:pointer;margin-left:auto;font-size:18px;">
            <i class="fas fa-times"></i>
        </button>
    `;

    notificationContainer.appendChild(notification);

    // Ajouter les styles d'animation s'ils n'existent pas
    if (!document.getElementById('notification-styles')) {
        const style = document.createElement('style');
        style.id = 'notification-styles';
        style.textContent = `
            @keyframes slideInRight {
                from { transform: translateX(100%); opacity: 0; }
                to { transform: translateX(0); opacity: 1; }
            }
            @keyframes slideOutRight {
                from { transform: translateX(0); opacity: 1; }
                to { transform: translateX(100%); opacity: 0; }
            }
        `;
        document.head.appendChild(style);
    }

    // Auto-supprimer après 5 secondes
    setTimeout(() => {
        if (notification.parentElement) {
            notification.style.animation = 'slideOutRight 0.3s ease';
            setTimeout(() => notification.remove(), 300);
        }
    }, 5000);
}


// ============================================
// NAVIGATION ENTRE ÉTAPES
// ============================================
function toggleSection(headerElement) {
    const section = headerElement.closest('.form-section');
    const content = section.querySelector('.row, .form-section-content');
    const icon = headerElement.querySelector('i.fa-chevron-up, i.fa-chevron-down');

    if (content) {
        const isCollapsed = content.style.display === 'none';
        content.style.display = isCollapsed ? '' : 'none';
        if (icon) {
            icon.className = isCollapsed ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
        }
    }
}

// ============================================
// CHARGEMENT DES CONCOURS
// ============================================
/**
 * Charge les types de diplôme disponibles pour un concours donné
 */
async function loadTypeDiplomeByConcours(concoursId) {
    const selectTypeDiplome = document.getElementById('type_diplome_obtenu');
    if (!selectTypeDiplome || !concoursId) {
        selectTypeDiplome.innerHTML = '<option value="">Sélectionner d\'abord un concours...</option>';
        return;
    }

    try {
        const response = await fetch(`${API_BASE_URL}?action=get_types_by_concours&concours_id=${concoursId}`);
        const result = await response.json();

        if (result.success && result.data && result.data.length > 0) {
            selectTypeDiplome.innerHTML = '<option value="">Sélectionner un type de diplôme...</option>';
            result.data.forEach(type => {
                const option = document.createElement('option');
                option.value = type.type_diplome_id;
                option.textContent = `${type.libelle} (${type.annee_apres_bac} ans après bac)`;
                selectTypeDiplome.appendChild(option);
            });
            console.log(`${result.data.length} types de diplôme chargés pour le concours ${concoursId}`);
        } else {
            selectTypeDiplome.innerHTML = '<option value="">Aucun type de diplôme disponible pour ce concours</option>';
        }
    } catch (error) {
        console.error('Erreur lors du chargement des types de diplôme:', error);
        selectTypeDiplome.innerHTML = '<option value="">Erreur de chargement</option>';
    }
}

async function loadConcours() {
    const selectConcours = document.getElementById('concours_id');
    if (!selectConcours) return;

    try {
        const response = await fetch(API_CONCOURS_URL);
        const result = await response.json();

        if (result.success && result.data) {
            selectConcours.innerHTML = '<option value="">Sélectionner un concours...</option>';
            result.data.forEach(concours => {
                const option = document.createElement('option');
                option.value = concours.id;
                option.dataset.code = concours.code;
                option.textContent = `${concours.label} (${concours.filliere || 'Sans filière'})`;
                selectConcours.appendChild(option);
            });
            console.log(`${result.data.length} concours chargés avec succès`);

            // Ajouter l'écouteur d'événement après chargement
            selectConcours.addEventListener('change', function () {
                const concoursId = this.value;
                if (concoursId) {
                    // Charger les types de diplôme pour ce concours
                    loadTypeDiplomeByConcours(concoursId);
                    // Vérifier si une inscription existe
                    checkExistingInscription();
                } else {
                    document.getElementById('type_diplome_obtenu').innerHTML = '<option value="">Sélectionner d\'abord un concours...</option>';
                }
            });
        } else {
            console.error('Erreur lors du chargement des concours:', result.message);
            selectConcours.innerHTML = '<option value="">Erreur de chargement des concours</option>';
        }
    } catch (error) {
        console.error('Erreur réseau:', error);
        selectConcours.innerHTML = '<option value="">Erreur de connexion</option>';
    }
}

// ============================================
// ÉTAPE 1: VALIDATION ET ENVOI
// ============================================
function isValidEmail(email) {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    return emailRegex.test(email);
}

function validateStep1(isDraft = false) {
    const form = document.getElementById('personalInfoForm');
    const requiredFields = form.querySelectorAll('[required]');
    let isValid = true;

    // Réinitialiser les erreurs
    document.querySelectorAll('.error-message').forEach(el => el.classList.remove('show'));
    document.querySelectorAll('.form-control.error, .form-select.error').forEach(el => el.classList.remove('error'));

    requiredFields.forEach(field => {
        if (!field.value.trim()) {
            field.classList.add('error');
            isValid = false;
        } else {
            field.classList.remove('error');
        }
    });

    // Vérifications spécifiques
    if (isDraft == false) {
        const email = document.getElementById('email');
        if (email.value && !isValidEmail(email.value)) {
            email.classList.add('error');
            document.getElementById('email-error').classList.add('show');
            isValid = false;
        }

        const cin = document.getElementById('cin');
        if (cin.value && cin.value.length !== 8) {
            cin.classList.add('error');
            document.getElementById('cin-error').classList.add('show');
            isValid = false;
        }

        const telephone = document.getElementById('telephone');
        if (telephone.value && !/^\d{10}$/.test(telephone.value)) {
            telephone.classList.add('error');
            document.getElementById('telephone-error').classList.add('show');
            isValid = false;
        }

        const codePostal = document.getElementById('code_postal');
        if (codePostal.value && !/^\d{5}$/.test(codePostal.value)) {
            codePostal.classList.add('error');
            document.getElementById('code_postal-error').classList.add('show');
            isValid = false;
        }

        // Vérifier que le concours est sélectionné
        const concours = document.getElementById('concours_id');
        if (!concours.value) {
            concours.classList.add('error');
            isValid = false;
        }

        if (!isValid) {
            alert('Veuillez remplir correctement tous les champs obligatoires.');
            return;
        }
    }


    // Récupération des données
    const formData = new FormData(form);
    const data = Object.fromEntries(formData.entries());

    if (data.concours_id === "" || data.concours_id === null || data.concours_id === undefined) {
        data.concours_id = null;
    }
    if (data.type_diplome === "" || data.type_diplome === null || data.type_diplome === undefined) {
        data.type_diplome = null;
    }

    // تأكدي باللي هاد الـ ID كيماتشي الـ ID لي عندك في الـ list/main.js
    data.candidat_id = typeof CANDIDAT_ID !== 'undefined' ? CANDIDAT_ID : 4;
    data.date_inscription = new Date().toISOString().split('T')[0];

    data.etat_inscription = isDraft ? 'BROUILLON' : 'EN_ATTENTE';
    data.resultat_inscription = 'EN_COURS';
    data.active = 1;

    // Sauvegarder dans localStorage
    localStorage.setItem('step1Data', JSON.stringify(data));

    // Envoyer à l'API
    showSpinner(true);

    fetch(`${API_BASE_URL}?action=create_or_update`, {
        method: 'POST',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify(data)
    })
        .then(response => response.json())
        .then(result => {
            showSpinner(false);
            if (result.status === 'success' || result.success) {


                const uploadData = {
                    candidat_id: result.candidat_id || data.candidat_id,
                    concours_id: data.concours_id,
                    cin: data.cin,
                    inscription_id: result.id
                };

                uploadDocuments(uploadData).then(uploadResult => {
                    if (uploadResult && uploadResult.success) {
                        alert('✅ Inscription validée et documents téléchargés avec succès !');
                    } else if (uploadResult && uploadResult.success && isDraft) {
                        alert('✅ Enregistré comme brouillon avec succès !');
                    } else {
                        alert('✅ Inscription validée mais certains documents n\'ont pas pu être téléchargés.');
                    }
                    window.location.href = '/est-concours/app/view/candidat/inscription/list/index.php';
                });

            } else {
                alert('❌ Erreur: ' + result.message);
            }
        })
        .catch(error => {
            showSpinner(false);
            console.error('Erreur réseau:', error);
            alert('❌ Erreur de connexion au serveur. Veuillez réessayer.');
        });

}


function calculateMoyenneGenerale() {
    /*   const inputs = document.querySelectorAll('.semester-note');
       let total = 0;
       let count = 0;

       inputs.forEach(input => {
           const value = parseFloat(input.value);
           if (!isNaN(value) && value >= 0 && value <= 20) {
               total += value;
               count++;
           }
       });

       const finalMoyenne = count === 4 ? (total / 4).toFixed(2) : "0.00";
       document.getElementById('moyenne_generale_display').textContent = finalMoyenne;
       return finalMoyenne;*/
    return 11;
}

// Écouteurs pour le calcul automatique de la moyenne
document.addEventListener('DOMContentLoaded', function () {
    // Charger les concours
    loadConcours();


    const concoursSelect = document.getElementById('concours_id');
    if (concoursSelect) {
        // Attendre que les concours soient chargés avant d'ajouter l'événement
        // On utilise un MutationObserver ou on attend que le select ait des options
        const checkConcoursLoaded = setInterval(function () {
            if (concoursSelect.options.length > 1) {
                clearInterval(checkConcoursLoaded);
                // Ajouter l'événement change
                concoursSelect.addEventListener('change', function () {
                    const selectedValue = this.value;
                    if (selectedValue) {
                        // Vérifier si une inscription existe
                        checkExistingInscription();
                    }
                });
                console.log('Événement change ajouté au select concours');
            }
        }, 500);

        // Timeout pour éviter une boucle infinie
        setTimeout(function () {
            clearInterval(checkConcoursLoaded);
        }, 10000);
    }


    // Initialiser les sections réductibles
    document.querySelectorAll('.form-section-title').forEach(title => {
        // Ajouter l'icône de réduction
        const icon = document.createElement('i');
        icon.className = 'fas fa-chevron-up ms-auto';
        icon.style.cursor = 'pointer';
        title.style.cursor = 'pointer';
        title.style.display = 'flex';
        title.style.alignItems = 'center';
        title.appendChild(icon);

        title.addEventListener('click', function (e) {
            e.stopPropagation();
            const section = this.closest('.form-section');
            const content = section.querySelector('.row, .form-section-content');
            const icon = this.querySelector('i.fa-chevron-up, i.fa-chevron-down');

            if (content) {
                const isCollapsed = content.style.display === 'none';
                content.style.display = isCollapsed ? '' : 'none';
                if (icon) {
                    icon.className = isCollapsed ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
                }
            }
        });
    });


    // Photo preview
    const photoInput = document.getElementById('photo');
    if (photoInput) {
        photoInput.addEventListener('change', function (e) {
            const file = e.target.files[0];
            const preview = document.getElementById('photo-preview');
            if (file && preview) {
                preview.innerHTML = `<i class="fas fa-file-image"></i> Fichier sélectionné: ${file.name}`;
            }
        });
    }

    // ============================================
    // AJOUT: Vérifier si un concours est déjà sélectionné au chargement
    // ============================================
    // Si un concours is déjà sélectionné (par exemple via fillUpTestData)
    // on vérifie s'il existe une inscription
    setTimeout(function () {
        const concoursSelect = document.getElementById('concours_id');
        if (concoursSelect && concoursSelect.value) {
            checkExistingInscription();
        }
    }, 2000);
});


function submitApplication() {
    // Vérifier toutes les cases à cocher
    const checkboxes = document.querySelectorAll('#step3 input[type="checkbox"]');
    let allChecked = true;

    checkboxes.forEach(cb => {
        const group = cb.closest('.checkbox-group');
        if (!cb.checked) {
            allChecked = false;
            if (group) group.classList.add('error');
        } else {
            if (group) group.classList.remove('error');
        }
    });

    if (!allChecked) {
        alert('Veuillez accepter toutes les conditions avant de soumettre.');
        return;
    }

    // Récupérer les données
    const step1Data = JSON.parse(localStorage.getItem('step1Data')) || {};
    const step2Data = JSON.parse(localStorage.getItem('step2Data')) || {};

    // Calculer la note du dossier
    const s1 = parseFloat(step2Data.note_s1) || 0;
    const s2 = parseFloat(step2Data.note_s2) || 0;
    const s3 = parseFloat(step2Data.note_s3) || 0;
    const s4 = parseFloat(step2Data.note_s4) || 0;
    const bacAvg = parseFloat(step2Data.moyenne_bac) || 0;
    const diplomaAvg = (s1 + s2 + s3 + s4) / 4;
    const noteDossier = (bacAvg * 0.3 + diplomaAvg * 0.7).toFixed(3);

    // Préparer les données finales
    const finalData = {
        Horodateur: new Date().toLocaleString('fr-FR'),
        ...step1Data,
        ...step2Data,
        DEUX_Spe: step2Data.specialite_diplome,
        NOM2: step1Data.nom,
        PRENOM: step1Data.prenom,
        DEUX_Dur: step2Data.duree_diplome || '2',
        DEUX_Moy: diplomaAvg.toFixed(2),
        Note_Dos: noteDossier,
        Note_Ecrit: 'À déterminer',
        Note_Oral: 'À déterminer',
        Note_Fin: 'À déterminer'
    };

    showSpinner(true);

    // Envoyer les données
    fetch('create-espace-etudientControler.php', {
        method: 'POST',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify(finalData)
    })
        .then(response => {
            if (!response.ok) throw new Error('Network response error');
            return response.json();
        })
        .then(res => {
            showSpinner(false);
            if (res.status === 'success') {
                alert('✅ Candidature soumise avec succès !\n\nNote du dossier: ' + noteDossier + '/20');
                localStorage.removeItem('step1Data');
                localStorage.removeItem('step2Data');
                window.location.href = 'confirmation.php';
            } else {
                alert('❌ Erreur: ' + (res.message || 'Échec de l\'enregistrement'));
            }
        })
        .catch(err => {
            showSpinner(false);
            console.error(err);
            alert('❌ Erreur de connexion avec le serveur. Candidature non envoyée.');
        });
}

// ============================================
// FONCTIONS DE REMPLISSAGE POUR TEST
// ============================================
function fillUpTestData() {
    try {
        document.getElementById("civilite").value = "Mademoiselle";
        document.getElementById("email").value = "maryamkounjab94@gmail.com";
        document.getElementById("nom").value = "Kounjab";
        document.getElementById("prenom").value = "Maryam";
        document.getElementById("nom_arabe").value = "قنجاب";
        document.getElementById("prenom_arabe").value = "مريم";
        document.getElementById("cin").value = "Ma178141";
        document.getElementById("telephone").value = "0652937515";
        document.getElementById("situation_familiale").value = "Célibataire";
        document.getElementById("date_naissance").value = "2007-06-28";
        document.getElementById("lieu_naissance").value = "Sidi bennour";
        document.getElementById("lieu_naissance_arabe").value = "سيدي بنور";
        document.getElementById("province_naissance").value = "Casablanca";
        document.getElementById("nationalite").value = "Marocaine";
        document.getElementById("adresse").value = "centre tnine chtouka,cte Azammour,province El jadida";
        document.getElementById("adresse_arabe").value = "مركز اثنين شتوية، جماعة أزمور، إقليم الجديدة";
        document.getElementById("code_postal").value = "24175";
        document.getElementById("province_residence").value = "Casablanca";
        document.getElementById("situation_professionnelle").value = "Étudiant";

        document.getElementById("code_massar").value = "K130024512";
        document.getElementById("annee_bac").value = "2025";
        document.getElementById("specialite_bac").value = "Sciences PC";
        document.getElementById("mention_bac").value = "Très Bien";
        document.getElementById("type_etablissement_bac").value = "Public";
        document.getElementById("province_bac").value = "Sidi Bennour";
        document.getElementById("moyenne_bac").value = "16.12";

        document.getElementById("type_diplome").value = "DUT";
        document.getElementById("specialite_diplome").value = "Génie Informatique";
        document.getElementById("annee_diplome").value = "2025";
        document.getElementById("etablissement_origine").value = "EST Sidi Bennour";
        document.getElementById("modules_valides").value = "Oui";

        document.getElementById("note_s1").value = "14.50";
        document.getElementById("note_s2").value = "15.10";
        document.getElementById("note_s3").value = "14.90";
        document.getElementById("note_s4").value = "16.00";
        document.getElementById("note_s5").value = "12.00";
        document.getElementById("note_s6").value = "11.00";

        calculateMoyenneGenerale();
        console.log("Données de test académiques injectées avec succès !");

        const selectConcours = document.getElementById('concours_id');
        if (selectConcours && selectConcours.options.length > 1) {
            selectConcours.selectedIndex = 1;
        }

        document.querySelectorAll('.form-control, .form-select').forEach(input => {
            input.classList.remove('error');
        });
        console.log("Tous les champs ont été remplis avec succès !");
    } catch (error) {
        console.error("Erreur dans fillUpTestData : ", error.message);
    }
}


// ============================================
// SPINNER
// ============================================
function showSpinner(show) {
    const overlay = document.getElementById('spinnerOverlay');
    if (show) {
        overlay.classList.add('show');
    } else {
        overlay.classList.remove('show');
    }
}

// ============================================
// GESTION DES FICHIERS UPLOAD (MODIFIÉE)
// ============================================

/**
 * Initialise les champs de fichiers avec preview
 */
function initFileUploads() {
    const fileInputs = document.querySelectorAll('input[type="file"]');

    fileInputs.forEach(input => {
        // Créer l'élément de preview
        const previewId = input.id + '-preview';
        let previewContainer = document.getElementById(previewId);

        if (!previewContainer) {
            // Créer le container de preview s'il n'existe pas
            const parent = input.closest('.file-upload')?.parentElement;
            if (parent) {
                previewContainer = document.createElement('div');
                previewContainer.id = previewId;
                previewContainer.className = 'upload-preview';
                previewContainer.style.display = 'none';
                parent.appendChild(previewContainer);
            }
        }

        // Événement de changement
        input.addEventListener('change', function (e) {
            const file = this.files[0];
            const container = this.closest('.file-upload');

            if (file) {
                // Vérifier la taille (5MB max)
                const maxSize = 5 * 1024 * 1024;
                if (file.size > maxSize) {
                    alert('Le fichier est trop volumineux. Taille maximale: 5MB');
                    this.value = '';
                    if (container) container.classList.remove('has-file');
                    return;
                }

                // Afficher la preview
                if (container) container.classList.add('has-file');

                const previewEl = document.getElementById(this.id + '-preview');
                if (previewEl) {
                    const fileSize = (file.size / 1024 / 1024).toFixed(2);
                    previewEl.innerHTML = `
                        <span class="file-name">
                            <i class="fas fa-file-alt"></i>
                            <span>${file.name}</span>
                        </span>
                        <span class="file-size">${fileSize} MB</span>
                        <button type="button" class="remove-file" onclick="removeFile('${this.id}')">
                            <i class="fas fa-times"></i>
                        </button>
                    `;
                    previewEl.style.display = 'flex';
                }

                // Supprimer l'erreur
                if (container) container.classList.remove('error');

            } else {
                if (container) container.classList.remove('has-file');
                const previewEl = document.getElementById(this.id + '-preview');
                if (previewEl) {
                    previewEl.style.display = 'none';
                    previewEl.innerHTML = '';
                }
            }
        });
    });
}

/**
 * Supprime un fichier sélectionné
 */
function removeFile(inputId) {
    const input = document.getElementById(inputId);
    if (input) {
        input.value = '';
        const container = input.closest('.file-upload');
        if (container) container.classList.remove('has-file');

        const preview = document.getElementById(inputId + '-preview');
        if (preview) {
            preview.style.display = 'none';
            preview.innerHTML = '';
        }
    }
}

/**
 * Upload des fichiers vers le serveur
 */
async function uploadDocuments(inscriptionData) {
    const formData = new FormData();

    // Ajouter les informations d'inscription
    formData.append('candidat_id', inscriptionData.candidat_id);
    formData.append('concours_id', inscriptionData.concours_id);
    formData.append('cin', inscriptionData.cin);
    formData.append('inscription_id', inscriptionData.inscription_id);

    // Récupérer tous les fichiers
    const fileInputs = document.querySelectorAll('input[type="file"]');
    let hasFiles = false;

    fileInputs.forEach(input => {
        if (input.files && input.files.length > 0) {
            const file = input.files[0];
            // Utiliser le nom du champ comme nom de fichier
            formData.append(input.name, file);
            hasFiles = true;
        }
    });

    if (!hasFiles) {
        console.log('Aucun fichier à uploader');
        return null;
    }

    try {
        const response = await fetch(`${API_BASE_URL}?action=upload_documents`, {
            method: 'POST',
            body: formData
        });

        const result = await response.json();
        return result;

    } catch (error) {
        console.error('Erreur lors de l\'upload des documents:', error);
        return {success: false, message: 'Erreur de connexion'};
    }
}

// ============================================
// INITIALISATION DE LA PAGE
// ============================================
function getUrlParameter(name) {
    const urlParams = new URLSearchParams(window.location.search);
    return urlParams.get(name);
}

async function getInscriptionById(id) {
    try {
        const response = await fetch(`${API_BASE_URL}?action=get_by_id=${id}`);
        const result = await response.json();
        if (result.success && result.data && result.data.length > 0) {
            fillFormWithExistingData(result.data[0]);
        } else {
            fillFormWithExistingData(null);
        }
    } catch (error) {
        console.error('Erreur lors du chargement de l\'inscription:', error);
    }
}

document.addEventListener('DOMContentLoaded', function () {
    // Charger les concours
    loadConcours();
    initFileUploads();

    var id = getUrlParameter("id")
    if (id != null) {
        getInscriptionById(id);
    }


    // Validation en temps réel des champs
    document.querySelectorAll('input[required], select[required]').forEach(input => {
        input.addEventListener('blur', function () {
            if (!this.value.trim()) {
                this.classList.add('error');
            } else {
                this.classList.remove('error');
                // Validation spécifique
                if (this.type === 'email' && !isValidEmail(this.value)) {
                    this.classList.add('error');
                } else if (this.name === 'cin' && this.value.length !== 8) {
                    this.classList.add('error');
                } else if (this.name === 'telephone' && !/^\d{10}$/.test(this.value)) {
                    this.classList.add('error');
                } else if (this.name === 'code_postal' && !/^\d{5}$/.test(this.value)) {
                    this.classList.add('error');
                }
            }
        });
    });

    // Photo preview
    const photoInput = document.getElementById('photo');
    if (photoInput) {
        photoInput.addEventListener('change', function (e) {
            const file = e.target.files[0];
            const preview = document.getElementById('photo-preview');
            if (file && preview) {
                preview.innerHTML = `<i class="fas fa-file-image"></i> Fichier sélectionné: ${file.name}`;
            }
        });
    }
});

/**
 * دالة لملء الحقول تلقائياً باستعمال boucle
 */
function fillFormWithExistingData(data) {
    if (!data) return;

    // 1. تعريف خريطة الحقول (ID الحقل في HTML => الاسم في قاعدة البيانات/Data)
    const fieldMapping = {
        'civilite': 'civilite',
        'email': 'email',
        'prenom': 'prenom',
        'nom': 'nom',
        'prenom_arabe': 'prenom_arabe',
        'nom_arabe': 'nom_arabe',
        'cin': 'cin',
        'telephone': 'telephone',
        'situation_familiale': 'situation_familiale',
        'date_naissance': 'date_naissance',
        'lieu_naissance': 'lieu_naissance',
        'lieu_naissance_arabe': 'lieu_naissance_arabe',
        'province_naissance': 'province_naissance',
        'nationalite': 'nationalite',
        'adresse': 'adresse',
        'adresse_arabe': 'adresse_arabe',
        'code_postal': 'code_postal',
        'province_residence': 'province_residence',
        'situation_professionnelle': 'situation_professionnelle',
        'code_massar': 'code_massar',
        'annee_bac': 'annee_bac',
        'specialite_bac': 'specialite_bac',
        'mention_bac': 'mention_bac',
        'type_etablissement_bac': 'type_etablissement_bac',
        'province_bac': 'province_bac',
        'moyenne_bac': 'moyenne_bac',
        // الحقول المطلوبة:
        'type_diplome': 'type_diplome',
        'specialite_diplome': 'specialite_diplome',
        'annee_diplome': 'annee_diplome',
        'etablissement_origine': 'etablissement_origine',
        'modules_valides': 'modules_valides',
        'duree_diplome': 'duree_diplome',
        // ملاحظة: تأكد من تسمية الحقول في قاعدة البيانات (note_s1, note_s2...)
        'note_s1': 'note_s1',
        'note_s2': 'note_s2',
        'note_s3': 'note_s3',
        'note_s4': 'note_s4',
        'note_s5': 'note_s5',
        'note_s6': 'note_s6'
    };

    // 2. تطبيق الـ boucle على الحقول
    Object.keys(fieldMapping).forEach(inputId => {
        const inputElement = document.getElementById(inputId);
        const dataKey = fieldMapping[inputId];

        if (inputElement && data.hasOwnProperty(dataKey)) {
            inputElement.value = data[dataKey] || '';
        }
    });

    // 3. معالجة خاصة لـ "type_diplome_obtenu" كما في كودك الأصلي
    if (data.type_diplome_obtenu) {
        const concoursId = document.getElementById('concours_id').value;
        if (concoursId) {
            loadTypeDiplomeByConcours(concoursId).then(() => {
                const el = document.getElementById('type_diplome_obtenu');
                if (el) el.value = data.type_diplome_obtenu;
            });
        }
    }

    calculateMoyenneGenerale();
    console.log("تم ملء الحقول بنجاح باستخدام الـ boucle");
}
// 1. البيانات الشاملة
const nationalites = ["Marocaine", "Algérienne", "Tunisienne", "Mauritanienne", "Française", "Autre"];

const bacSpecialites = {
    "Sciences Expérimentales": ["Sciences Physiques et Chimiques (PC)", "Sciences de la Vie et de la Terre (SVT)", "Sciences Agronomiques"],
    "Sciences Mathématiques": ["Sciences Mathématiques A", "Sciences Mathématiques B"],
    "Sciences et Technologies": ["Sciences et Technologies Électriques (STE)", "Sciences et Technologies Mécaniques (STM)"],
    "Sciences Économiques et Gestion": ["Sciences Économiques", "Sciences de Gestion Comptable (SGC)"],
    "Lettres et Sciences Humaines": ["Lettres", "Sciences Humaines"],
    "Enseignement Originel": ["Sciences de la Chariâa", "Langue Arabe"],
    "Baccalauréat Professionnel": ["Bac Pro - Gestion et Administration", "Bac Pro - Commerce / Comptabilité", "Bac Pro - Systèmes Électroniques et Numériques", "Bac Pro - Maintenance Industrielle / Informatique", "Bac Pro - Autre Filière"],
    "Options Internationales (BIOF)": ["Sciences Mathématiques A - Option Français", "Sciences Physiques (PC) - Option Français", "Sciences SVT - Option Français", "Option Anglais / Espagnol"]
};

const diplomeSpecialites = {
    "Informatique et Technologies": { "Génie Informatique": "Génie Informatique / Informatique", "Développement Digital / Logiciel": "Développement Digital / Logiciel", "Réseaux et Systèmes Sécurisés": "Réseaux, Systèmes et Sécurité", "Intelligence Artificielle et Data": "IA, Big Data et Data Science", "Systèmes Embarqués et IoT": "Systèmes Embarqués et IoT" },
    "Sciences et Ingénierie": { "Génie Civil": "Génie Civil et Bâtiment (BTP)", "Génie Électrique": "Génie Électrique / Électronique", "Génie Mécanique": "Génie Mécanique / Productique", "Génie Industriel": "Génie Industriel et Logistique", "Physique / Chimie": "Sciences Physiques / Chimie", "Mathématiques": "Mathématiques / Mathématiques Appliquées", "Sciences de la Vie et de la Terre": "Sciences de la Vie, Terre et Environnement" },
    "Économie, Gestion et Commerce": { "Sciences Économiques": "Sciences Économiques et Gestion", "Gestion Comptable et Financière": "Gestion Comptable, Finance et Audit", "Commerce et Marketing": "Commerce, Marketing et Vente", "Management des Entreprises": "Management et Gestion des Entreprises", "Logistique et Transport": "Gestion Logistique et Transport", "Ressources Humaines": "Gestion des Ressources Humaines (GRH)" },
    "Lettres, Langues et Sciences Humaines": { "Études Arabes": "Études Arabes", "Études Françaises": "Études Françaises", "Études Anglaises": "Études Anglaises", "Droit (Arabe / Français)": "Droit (En Arabe ou en Français)", "Sociologie / Philosophie": "Sociologie / Philosophie / Psychologie", "Histoire et Géographie": "Histoire et Géographie" },
    "Sciences de l'Éducation": { "Enseignement Primaire": "Enseignement Primaire", "Enseignement Secondaire - Sciences": "Enseignement Secondaire (Maths, PC, SVT)", "Enseignement Secondaire - Lettres": "Enseignement Secondaire (Langues, Histoire...)" },
    "Santé et Paramédical": { "Médecine / Pharmacie": "Médecine / Pharmacie / Biologie Médicale", "Sciences Infirmières": "Sciences Infirmières / Infirmier Polyvalent", "Techniques de Santé": "Techniques de Santé (Radiologie, Labo...)" }
};

const etablissementsData = {
    "Écoles Supérieures de Technologie (EST)": ["EST Sidi Bennour", "EST Casablanca", "EST Salé", "EST Fès", "EST Agadir"],
    "Facultés des Sciences et Techniques (FST)": ["FST Settat", "FST Mohammedia", "FST Marrakech", "FST Tanger", "FST Errachidia"],
    "Facultés des Sciences": ["Faculté des Sciences Casablanca", "Faculté des Sciences Rabat", "Faculté des Sciences El Jadida"],
    "Écoles Nationales des Sciences Appliquées (ENSA)": ["ENSA Khouribga", "ENSA Safi", "ENSA Marrakech", "ENSA Kenitra"],
    "Écoles Nationales de Commerce et de Gestion (ENCG)": ["ENCG Settat", "ENCG Casablanca", "ENCG Tanger"],
    "Autres Établissements": ["ENSAM", "Faculté de Droit", "Autre Établissement"]
};

const regionsData = {
    "Tanger-Tétouan-Al Hoceïma": ["Tanger-Assilah", "M'diq-Fnideq", "Tétouan", "Fahs-Anjra", "Larache", "Al Hoceïma", "Chefchaouen", "Ouezzane"],
    "L'Oriental": ["Oujda-Angad", "Nador", "Driouch", "Berkane", "Taourirt", "Guercif", "Jerada", "Figuig"],
    "Fès-Meknès": ["Fès", "Meknès", "El Hajeb", "Ifrane", "Moulay Yacoub", "Séfrou", "Boulemane", "Taza", "Taounate"],
    "Rabat-Salé-Kénitra": ["Rabat", "Salé", "Skhirate-Témara", "Kénitra", "Khémisset", "Sidi Kacem", "Sidi Slimane"],
    "Béni Mellal-Khénifra": ["Béni Mellal", "Azilal", "Fquih Ben Salah", "Khénifra", "Khouribga"],
    "Casablanca-Settat": ["Casablanca", "Mohammedia", "El Jadida", "Nouaceur", "Médiouna", "Benslimane", "Berrechid", "Settat", "Sidi Bennour"],
    "Marrakech-Safi": ["Marrakech", "Chichaoua", "Al Haouz", "El Kelâa des Sraghna", "Essaouira", "Rhamna", "Safi", "Youssoufia"],
    "Drâa-Tafilalet": ["Errachidia", "Ouarzazate", "Midelt", "Tinghir", "Zagora"],
    "Souss-Massa": ["Agadir Ida-Outanane", "Inezgane-Aït Melloul", "Chtouka-Aït Baha", "Taroudannt", "Tiznit", "Tata"],
    "Guelmim-Oued Noun": ["Guelmim", "Assa-Zag", "Tan-Tan", "Sidi Ifni"],
    "Laâyoune-Sakia El Hamra": ["Laâyoune", "Boujdour", "Tarfaya", "Es-Semara"],
    "Dakhla-Oued Ed-Dahab": ["Oued Ed-Dahab", "Aousserd"]
};

/**
 * دالة شاملة لتعمير جميع حقول النموذج بناءً على البيانات المعرفة
 */
function initializeFormFields() {
    const defaultOption = '<option value="">Sélectionner...</option>';

    // 1. تعمير السنوات (من 2026 إلى 1999)
    const years = [];
    for (let i = 2026; i >= 1999; i--) years.push(i);
    ['annee_diplome', 'annee_bac'].forEach(id => {
        const select = document.getElementById(id);
        if (select) {
            select.innerHTML = defaultOption;
            years.forEach(y => select.innerHTML += `<option value="${y}">${y}</option>`);
        }
    });

    // 2. تعمير الجنسية
    const natSelect = document.getElementById('nationalite');
    if (natSelect) {
        natSelect.innerHTML = defaultOption;
        nationalites.forEach(n => natSelect.innerHTML += `<option value="${n}">${n}</option>`);
    }

    // 3. تعمير تخصصات الدبلوم (مع المجموعات)
    const specDiplomeSelect = document.getElementById('specialite_diplome');
    if (specDiplomeSelect) {
        specDiplomeSelect.innerHTML = defaultOption;
        for (const groupe in diplomeSpecialites) {
            let options = `<optgroup label="${groupe}">`;
            for (const key in diplomeSpecialites[groupe]) {
                options += `<option value="${key}">${diplomeSpecialites[groupe][key]}</option>`;
            }
            specDiplomeSelect.innerHTML += options + `</optgroup>`;
        }
    }

    // 4. تعمير تخصصات الباك
    const specBacSelect = document.getElementById('specialite_bac');
    if (specBacSelect) {
        specBacSelect.innerHTML = defaultOption;
        for (const groupe in bacSpecialites) {
            let options = `<optgroup label="${groupe}">`;
            bacSpecialites[groupe].forEach(s => options += `<option value="${s}">${s}</option>`);
            specBacSelect.innerHTML += options + `</optgroup>`;
        }
    }


    // 6. تعمير المؤسسات
    const etabSelect = document.getElementById('etablissement_origine');
    if (etabSelect) {
        etabSelect.innerHTML = defaultOption;
        for (const groupe in etablissementsData) {
            let options = `<optgroup label="${groupe}">`;
            etablissementsData[groupe].forEach(e => options += `<option value="${e}">${e}</option>`);
            etabSelect.innerHTML += options + `</optgroup>`;
        }
    }

    // 7. تعمير الأقاليم (للأماكن الثلاثة)
    ['province_naissance', 'province_bac', 'province_residence'].forEach(id => {
        const select = document.getElementById(id);
        if (select) {
            select.innerHTML = defaultOption;
            for (const region in regionsData) {
                let options = `<optgroup label="${region}">`;
                regionsData[region].forEach(p => options += `<option value="${p}">${p}</option>`);
                select.innerHTML += options + `</optgroup>`;
            }
        }
    });
}
document.addEventListener('DOMContentLoaded', initializeFormFields);


// ============================================
// AFFICHAGE DE LA LISTE / RENDU (MODIFIED HERE)
// ============================================
/**
 * التعديل تدار هنا فـ الروابط ديال الملفات باش يزيد '../create/' قبل المسار ديال الـ pdf
 */
function displayInscriptions(inscriptions) {
    const tableBody = document.getElementById('inscriptionsTableBody');
    if (!tableBody) return;

    tableBody.innerHTML = '';

    if (inscriptions.length === 0) {
        tableBody.innerHTML = '<tr><td colspan="7" class="text-center">Aucune inscription trouvée</td></tr>';
        return;
    }

    inscriptions.forEach(inscription => {
        const row = document.createElement('tr');
        row.innerHTML = `
            <td>${inscription.id}</td>
            <td>${inscription.concours_label || 'N/A'}</td>
            <td>${inscription.date_inscription}</td>
            <td><span class="badge bg-${inscription.etat_inscription === 'BROUILLON' ? 'warning' : 'success'}">${inscription.etat_inscription}</span></td>
            <td>
                <!-- التعديل ديال زيادة ../create/ كاين هنايا مباشرة ف الروابط -->
                ${inscription.bac_file ? `
                    <a href="../create/${inscription.bac_file}" target="_blank" class="btn btn-sm btn-outline-primary m-1">
                        <i class="fas fa-file-pdf me-1"></i> Bac
                    </a>
                ` : ''}
                ${inscription.cin_file ? `
                    <a href="../create/${inscription.cin_file}" target="_blank" class="btn btn-sm btn-outline-primary m-1">
                        <i class="fas fa-file-pdf me-1"></i> CIN
                    </a>
                ` : ''}
                ${inscription.releve_file ? `
                    <a href="../create/${inscription.releve_file}" target="_blank" class="btn btn-sm btn-outline-primary m-1">
                        <i class="fas fa-file-pdf me-1"></i> Relevé
                    </a>
                ` : ''}
            </td>
            <td>
                <a href="../create/index.php?id=${inscription.id}" class="btn btn-sm btn-primary">
                    <i class="fas fa-edit"></i> Modifier
                </a>
            </td>
        `;
        tableBody.appendChild(row);
    });
}