import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
    connect() {
        // Écoute tous les clics sur .open-modal -> détournement vers #lastStep + MAJ des options du formulaire
      document.querySelectorAll('.participant-box').forEach(element => {
          element.addEventListener('click', this.handleClick.bind(this))
      })
    }
    handleClick(event) {
        event.preventDefault()
        const participantId = event.currentTarget.dataset.id
        const box = event.currentTarget;
        const icon = box.querySelector('.icon');
        if (!participantId) return
        // Etape 1
        fetch(`/checkin/participant/${participantId}`, {
          method: 'POST',
          headers: {
            'Accept': 'application/json'
          }
        })
          .then(response => {
            if (!response.ok) {
              throw new Error(`Erreur API: ${response.status}`);
            }
            return response.json();
          })
          .then(data => {
            
            // Etape 2
            console.log('ID du particpant cliqué :', participantId);
            console.log('ÉTAT DU SLOT :', data.status);
            if (data.status === "CHECKED") {
              box.classList.add('has-background-primary');
              box.classList.remove('has-background-danger');
              icon.innerHTML = '';
            } else if (data.status === "UNCHECKED") {
              box.classList.remove('has-background-primary');
              box.classList.add('has-background-danger');
              icon.innerHTML = '';
            } else {
              console.warn("Statut de réponse sans action :", data.status);
            }
          })
          .catch(error => {
            console.error('Erreur lors de la récupération des slots :', error);
          });
        
    }
    disconnect() {
    this.element.querySelectorAll('.planning-cell-free').forEach(element => {
        element.removeEventListener('click', this.handleClick)
    })
}
}