#pragma once

#include <string>  // Para string
#include <vector>  // Para vector

namespace Difficulty {

    // --- Enums ---
    enum class Code {
        EASY = 0,    // Dificultad fácil
        NORMAL = 1,  // Dificultad normal
        HARD = 2,    // Dificultad difícil
    };

    // --- Estructuras ---
    struct Info {
        Code code;         // Código de dificultad
        std::string name;  // Nombre traducible
    };

    // --- Funciones ---
    void init();  // Inicializa la lista de dificultades con sus valores por defecto

    auto getDifficulties() -> std::vector<Info>&;           // Devuelve una referencia al vector de todas las dificultades
    auto getNameFromCode(Code code) -> std::string;         // Obtiene el nombre de una dificultad a partir de su código
    auto getCodeFromName(const std::string& name) -> Code;  // Obtiene el código de una dificultad a partir de su nombre

}  // namespace Difficulty