// ============================================
// CONFIGURATION
// ============================================
const API_URL = '/est-concours/model/api/candidat.php';
const CANDIDAT_ID = document.getElementById('candidat_id').value;

// ============================================
// CHARGEMENT DU PROFIL AU DÉMARRAGE
// ============================================
async function loadProfile() {
    try {
        const response = await fetch(`${API_URL}?action=get&id=${CANDIDAT_ID}`);
        const result = await response.json();

        if (result.success && result.data) {
            const candidat = result.data;
            // Remplir le header
            document.getElementById('full-name').textContent = candidat.prenom + ' ' + candidat.nom;
            document.getElementById('candidat-email').textContent = candidat.email;
            // Remplir le formulaire
            document.getElementById('nom').value    = candidat.nom    ?? '';
            document.getElementById('prenom').value = candidat.prenom ?? '';
            document.getElementById('email').value  = candidat.email  ?? '';
            document.getElementById('cin').value    = candidat.cin    ?? '';
            document.getElementById('phone').value  = candidat.phone  ?? '';
        }
    } catch (error) {
        showAlert('danger', 'Erreur lors du chargement du profil.');
    }
}

// ============================================
// MISE À JOUR DU PROFIL
// ============================================
async function updateProfile() {
    const data = {
        nom:    document.getElementById('nom').value.trim(),
        prenom: document.getElementById('prenom').value.trim(),
        email:  document.getElementById('email').value.trim(),
        cin:    document.getElementById('cin').value.trim().toUpperCase(),
        phone:  document.getElementById('phone').value.trim(),
    };

    if (!data.nom || !data.prenom || !data.email) {
        showAlert('danger', 'Nom, Prénom et Email sont obligatoires.');
        return;
    }

    try {
        const response = await fetch(`${API_URL}?id=${CANDIDAT_ID}`, {
            method: 'PUT',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify(data)
        });
        const result = await response.json();

        if (result.success) {
            showAlert('success', 'Profil mis à jour avec succès !');
            loadProfile();
        } else {
            showAlert('danger', result.message || 'Erreur lors de la mise à jour.');
        }
    } catch (error) {
        showAlert('danger', 'Erreur de connexion.');
    }
}

// ============================================
// MISE À JOUR DU MOT DE PASSE
// ============================================
async function updatePassword() {
    const newPassword     = document.getElementById('new_password').value;
    const confirmPassword = document.getElementById('confirm_password').value;

    if (!newPassword || newPassword.length < 6) {
        showAlert('danger', 'Le mot de passe doit contenir au moins 6 caractères.');
        return;
    }
    if (newPassword !== confirmPassword) {
        showAlert('danger', 'Les mots de passe ne correspondent pas.');
        return;
    }

    try {
        const response = await fetch(`${API_URL}?action=update_password&id=${CANDIDAT_ID}`, {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ new_password: newPassword })
        });
        const result = await response.json();

        if (result.success) {
            showAlert('success', 'Mot de passe modifié avec succès !');
            document.getElementById('new_password').value     = '';
            document.getElementById('confirm_password').value = '';
        } else {
            showAlert('danger', result.message || 'Erreur lors de la modification.');
        }
    } catch (error) {
        showAlert('danger', 'Erreur de connexion.');
    }
}

// ============================================
// UTILITAIRES
// ============================================
function showTab(tab, event) {
    event.preventDefault();
    document.getElementById('tab-profile').style.display  = tab === 'profile'  ? 'block' : 'none';
    document.getElementById('tab-password').style.display = tab === 'password' ? 'block' : 'none';
    document.querySelectorAll('.nav-link').forEach(l => l.classList.remove('active'));
    event.target.classList.add('active');
    document.getElementById('alert-box').style.display = 'none';
}

function showAlert(type, message) {
    const box = document.getElementById('alert-box');
    box.style.display = 'block';
    box.innerHTML = `<div class="alert alert-${type}"><i class="fas fa-${type === 'success' ? 'check' : 'exclamation'}-circle"></i> ${message}</div>`;
    setTimeout(() => { box.style.display = 'none'; }, 4000);
}

// Charger le profil au démarrage
document.addEventListener('DOMContentLoaded', loadProfile);