package fr.titionfire.ffsaf.utils;

import fr.titionfire.ffsaf.domain.service.TradService;
import io.quarkus.runtime.annotations.RegisterForReflection;

@RegisterForReflection
public enum RoleAsso {
    MEMBRE("Membre", 0),
    PRESIDENT("Président", 7),
    VPRESIDENT("Vise-Président", 6),
    SECRETAIRE("Secrétaire", 5),
    VSECRETAIRE("Vise-Secrétaire", 4),
    TRESORIER("Trésorier", 3),
    VTRESORIER("Vise-Trésorier", 2),
    MEMBREBUREAU("Membre bureau", 1);

    public final String str;
    public final int level;

    RoleAsso(String name, int level) {
        this.str = name;
        this.level = level;
    }

    public String getString(TradService trad) {
        return switch (this){
            case MEMBRE -> trad.translate("RoleAsso.MEMBRE");
            case PRESIDENT -> trad.translate("RoleAsso.PRESIDENT");
            case VPRESIDENT -> trad.translate("RoleAsso.VPRESIDENT");
            case SECRETAIRE -> trad.translate("RoleAsso.SECRETAIRE");
            case VSECRETAIRE -> trad.translate("RoleAsso.VSECRETAIRE");
            case TRESORIER -> trad.translate("RoleAsso.TRESORIER");
            case VTRESORIER -> trad.translate("RoleAsso.VTRESORIER");
            case MEMBREBUREAU -> trad.translate("RoleAsso.MEMBREBUREAU");
        };
    }

    @Override
    public String toString() {
        return str;
    }
}
