package dev.lions.unionflow.server.api.enums.wave;

/**
 * Énumération des statuts de transaction Wave
 *
 * @author UnionFlow Team
 * @version 3.0
 * @since 2025-01-29
 */
public enum StatutTransactionWave {
  INITIALISE("Initialisé"),
  EN_ATTENTE("En Attente"),
  EN_COURS("En Cours"),
  REUSSIE("Réussie"),
  ECHOUE("Échoué"),
  ANNULEE("Annulée"),
  EXPIRED("Expiré");

  private final String libelle;

  StatutTransactionWave(String libelle) {
    this.libelle = libelle;
  }

  public String getLibelle() {
    return libelle;
  }

  /** Vérifie si la transaction est finalisée */
  public boolean isFinalise() {
    return this == REUSSIE || this == ECHOUE || this == ANNULEE || this == EXPIRED;
  }
}

