iFacilityProject/iFacility/db/database.h
2021-01-04 18:54:15 +07:00

45 lines
944 B
C++

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