package fr.titionfire.ffsaf.utils;

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

@RegisterForReflection
public enum Genre {
    H("Homme"),
    F("Femme"),
    NA("Non définie");

    public final String str;

    Genre(String name) {
        this.str = name;
    }

    public static Genre fromString(String genre) {
        if (genre == null) {
            return NA;
        }
        if (genre.equalsIgnoreCase("Homme") || genre.equalsIgnoreCase("H")) {
            return H;
        } else if (genre.equalsIgnoreCase("Femme") || genre.equalsIgnoreCase("F")) {
            return F;
        } else {
            return NA;
        }
    }

    public String getString(TradService trad) {
        return switch (this) {
            case H -> trad.translate("Genre.Homme");
            case F -> trad.translate("Genre.Femme");
            case NA -> trad.translate("Genre.NA");
        };
    }

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

}
