#ifndef USER_MODEL_H #define USER_MODEL_H #include "core/string.h" #include "core/containers/vector.h" #include "core/object.h" #include "user.h" class UserModel : public Object { RCPP_OBJECT(UserModel, Object); public: Ref get_user(const int id); Ref get_user(const String &user_name_input); void save_user(Ref &user); Vector > get_all(); bool is_username_taken(const String &user_name_input); bool is_email_taken(const String &email_input); virtual bool check_password(const Ref &user, const String &p_password); virtual void create_password(Ref &user, const String &p_password); virtual String hash_password(const Ref &user, const String &p_password); virtual void create_table(); virtual void drop_table(); virtual void migrate(); static UserModel *get_singleton(); UserModel(); ~UserModel(); protected: static UserModel *_self; String _file_path; static String _path; static String _table_name; }; #endif