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

/**
 * Énumération des méthodes de paiement dans UnionFlow
 *
 * @author UnionFlow Team
 * @version 3.0
 * @since 2025-01-29
 */
public enum MethodePaiement {
  WAVE_MOBILE_MONEY("Wave Mobile Money"),
  ORANGE_MONEY("Orange Money"),
  MTN_MOBILE_MONEY("MTN Mobile Money"),
  MOOV_MONEY("Moov Money"),
  VIREMENT_BANCAIRE("Virement Bancaire"),
  CARTE_BANCAIRE("Carte Bancaire"),
  ESPECES("Espèces"),
  CHEQUE("Chèque"),
  AUTRE("Autre");

  private final String libelle;

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

  public String getLibelle() {
    return libelle;
  }

  /** Vérifie si c'est une méthode de mobile money */
  public boolean isMobileMoney() {
    return this == WAVE_MOBILE_MONEY
        || this == ORANGE_MONEY
        || this == MTN_MOBILE_MONEY
        || this == MOOV_MONEY;
  }
}

