#ifndef INCLUDEACEMANAGER_H
#define INCLUDEACEMANAGER_H

#include <QObject>

#include <vector>
#include <memory>

class Race;

class RaceManager : public QObject
{
    Q_OBJECT
private:
    explicit RaceManager(QObject *parent = nullptr);
public:
    static RaceManager& getInstance() {
        static RaceManager instance;
        return instance;
    }

    std::shared_ptr<Race> getRace(QString race_name);
    const std::vector<QString>& getAvailableRacesList();

private:
    std::vector<QString> available_races_;
    std::map<QString, std::shared_ptr<Race>> races_;

signals:

public slots:
};

#endif // INCLUDEACEMANAGER_H
