#ifndef USERREPOSITORY_H_ #define USERREPOSITORY_H_ #include #include #include #include "database/BaseRepository.h" #include "model/Models.h" #include "type/UserFilter.h" namespace database { class UserRepository : BaseRepository { public: UserRepository(const model::BinaryPath&); model::User retrieveUserRecord(model::User&, type::UserFilter); void saveUserRecord(const model::User&); private: struct UserLengths; struct UserLengths { unsigned long firstnameLength; unsigned long lastnameLength; unsigned long phoneLength; unsigned long emailLength; unsigned long usernameLength; unsigned long passwordLength; }; std::shared_ptr insertUserValues(const model::User&, std::shared_ptr); std::shared_ptr valueBind(model::User&, std::tuple&); std::shared_ptr fetchUserLengths(const model::User&); std::tuple fetchUV(); model::User parseRecord(MYSQL_STMT*); }; } #endif