#ifndef DATABASE_H #define DATABASE_H #include #include #include #include #include #include #include "../objects/profession.h" #include "../objects/user.h" typedef std::function UserPredicat; class Database { private: static Database *mInstance; static const QString mFilename; Database() = default; QVector mProfessions; QVector mUsers; QVector findUserByPredicat(UserPredicat predicat); public: static Database* instance(); QVector professions() const; QVector users() const; bool addUser(User usr); User* getUser(UID uid); User* getUser(QString login); QVector getUsersByType(UserType type); QVector getUsersByProfession(PID pid); bool removeUser(UID uid); bool addProfession(Profession prof); Profession* getProfession(PID pid); bool removeProfession(PID pid); void save(); void load(); }; #endif // DATABASE_H