// 1. DebugPhaseListener.java
package dev.lions.utils.listeners;

import jakarta.faces.event.PhaseEvent;
import jakarta.faces.event.PhaseId;
import jakarta.faces.event.PhaseListener;
import lombok.extern.slf4j.Slf4j;

/**
 * Écouteur de phase JSF pour le débogage.
 * Permet de tracer l'exécution des différentes phases du cycle de vie JSF.
 */
@Slf4j
public class DebugPhaseListener implements PhaseListener {

  private static final long serialVersionUID = 1L;

  @Override
  public void afterPhase(PhaseEvent event) {
    log.debug("Après la phase : {}", event.getPhaseId());
  }

  @Override
  public void beforePhase(PhaseEvent event) {
    log.debug("Avant la phase : {}", event.getPhaseId());
  }

  @Override
  public PhaseId getPhaseId() {
    return PhaseId.ANY_PHASE;
  }
}