/** * * Users.h * DO NOT EDIT. This file is generated by drogon_ctl * */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace drogon::orm; namespace drogon { namespace orm { class DbClient; using DbClientPtr = std::shared_ptr; } // namespace orm } // namespace drogon namespace drogon_model { namespace postgres { class Users { public: struct Cols { static const std::string _user_id; static const std::string _user_name; static const std::string _password; static const std::string _org_name; static const std::string _signature; static const std::string _avatar_id; static const std::string _id; static const std::string _salt; static const std::string _admin; }; const static int primaryKeyNumber; const static std::string tableName; const static bool hasPrimaryKey; const static std::string primaryKeyName; using PrimaryKeyType = int32_t; const PrimaryKeyType &getPrimaryKey() const; /** * @brief constructor * @param r One row of records in the SQL query result. * @param indexOffset Set the offset to -1 to access all columns by column * names, otherwise access all columns by offsets. * @note If the SQL is not a style of 'select * from table_name ...' (select * all columns by an asterisk), please set the offset to -1. */ explicit Users(const Row &r, const ssize_t indexOffset = 0) noexcept; /** * @brief constructor * @param pJson The json object to construct a new instance. */ explicit Users(const Json::Value &pJson) noexcept(false); /** * @brief constructor * @param pJson The json object to construct a new instance. * @param pMasqueradingVector The aliases of table columns. */ Users(const Json::Value &pJson, const std::vector &pMasqueradingVector) noexcept(false); Users() = default; void updateByJson(const Json::Value &pJson) noexcept(false); void updateByMasqueradedJson( const Json::Value &pJson, const std::vector &pMasqueradingVector) noexcept(false); static bool validateJsonForCreation(const Json::Value &pJson, std::string &err); static bool validateMasqueradedJsonForCreation( const Json::Value &, const std::vector &pMasqueradingVector, std::string &err); static bool validateJsonForUpdate(const Json::Value &pJson, std::string &err); static bool validateMasqueradedJsonForUpdate( const Json::Value &, const std::vector &pMasqueradingVector, std::string &err); static bool validJsonOfField(size_t index, const std::string &fieldName, const Json::Value &pJson, std::string &err, bool isForCreation); /** For column user_id */ /// Get the value of the column user_id, returns the default value if the /// column is null const std::string &getValueOfUserId() const noexcept; /// Return a shared_ptr object pointing to the column const value, or an /// empty shared_ptr object if the column is null const std::shared_ptr &getUserId() const noexcept; /// Set the value of the column user_id void setUserId(const std::string &pUserId) noexcept; void setUserId(std::string &&pUserId) noexcept; void setUserIdToNull() noexcept; /** For column user_name */ /// Get the value of the column user_name, returns the default value if the /// column is null const std::string &getValueOfUserName() const noexcept; /// Return a shared_ptr object pointing to the column const value, or an /// empty shared_ptr object if the column is null const std::shared_ptr &getUserName() const noexcept; /// Set the value of the column user_name void setUserName(const std::string &pUserName) noexcept; void setUserName(std::string &&pUserName) noexcept; void setUserNameToNull() noexcept; /** For column password */ /// Get the value of the column password, returns the default value if the /// column is null const std::string &getValueOfPassword() const noexcept; /// Return a shared_ptr object pointing to the column const value, or an /// empty shared_ptr object if the column is null const std::shared_ptr &getPassword() const noexcept; /// Set the value of the column password void setPassword(const std::string &pPassword) noexcept; void setPassword(std::string &&pPassword) noexcept; void setPasswordToNull() noexcept; /** For column org_name */ /// Get the value of the column org_name, returns the default value if the /// column is null const std::string &getValueOfOrgName() const noexcept; /// Return a shared_ptr object pointing to the column const value, or an /// empty shared_ptr object if the column is null const std::shared_ptr &getOrgName() const noexcept; /// Set the value of the column org_name void setOrgName(const std::string &pOrgName) noexcept; void setOrgName(std::string &&pOrgName) noexcept; void setOrgNameToNull() noexcept; /** For column signature */ /// Get the value of the column signature, returns the default value if the /// column is null const std::string &getValueOfSignature() const noexcept; /// Return a shared_ptr object pointing to the column const value, or an /// empty shared_ptr object if the column is null const std::shared_ptr &getSignature() const noexcept; /// Set the value of the column signature void setSignature(const std::string &pSignature) noexcept; void setSignature(std::string &&pSignature) noexcept; void setSignatureToNull() noexcept; /** For column avatar_id */ /// Get the value of the column avatar_id, returns the default value if the /// column is null const std::string &getValueOfAvatarId() const noexcept; /// Return a shared_ptr object pointing to the column const value, or an /// empty shared_ptr object if the column is null const std::shared_ptr &getAvatarId() const noexcept; /// Set the value of the column avatar_id void setAvatarId(const std::string &pAvatarId) noexcept; void setAvatarId(std::string &&pAvatarId) noexcept; void setAvatarIdToNull() noexcept; /** For column id */ /// Get the value of the column id, returns the default value if the column /// is null const int32_t &getValueOfId() const noexcept; /// Return a shared_ptr object pointing to the column const value, or an /// empty shared_ptr object if the column is null const std::shared_ptr &getId() const noexcept; /** For column salt */ /// Get the value of the column salt, returns the default value if the /// column is null const std::string &getValueOfSalt() const noexcept; /// Return a shared_ptr object pointing to the column const value, or an /// empty shared_ptr object if the column is null const std::shared_ptr &getSalt() const noexcept; /// Set the value of the column salt void setSalt(const std::string &pSalt) noexcept; void setSalt(std::string &&pSalt) noexcept; void setSaltToNull() noexcept; /** For column admin */ /// Get the value of the column admin, returns the default value if the /// column is null const bool &getValueOfAdmin() const noexcept; /// Return a shared_ptr object pointing to the column const value, or an /// empty shared_ptr object if the column is null const std::shared_ptr &getAdmin() const noexcept; /// Set the value of the column admin void setAdmin(const bool &pAdmin) noexcept; void setAdminToNull() noexcept; static size_t getColumnNumber() noexcept { return 9; } static const std::string &getColumnName(size_t index) noexcept(false); Json::Value toJson() const; Json::Value toMasqueradedJson( const std::vector &pMasqueradingVector) const; /// Relationship interfaces private: friend Mapper; static const std::vector &insertColumns() noexcept; void outputArgs(drogon::orm::internal::SqlBinder &binder) const; const std::vector updateColumns() const; void updateArgs(drogon::orm::internal::SqlBinder &binder) const; /// For mysql or sqlite3 void updateId(const uint64_t id); std::shared_ptr userId_; std::shared_ptr userName_; std::shared_ptr password_; std::shared_ptr orgName_; std::shared_ptr signature_; std::shared_ptr avatarId_; std::shared_ptr id_; std::shared_ptr salt_; std::shared_ptr admin_; struct MetaData { const std::string colName_; const std::string colType_; const std::string colDatabaseType_; const ssize_t colLength_; const bool isAutoVal_; const bool isPrimaryKey_; const bool notNull_; }; static const std::vector metaData_; bool dirtyFlag_[9] = {false}; public: static const std::string &sqlForFindingByPrimaryKey() { static const std::string sql = "select * from " + tableName + " where id = $1"; return sql; } static const std::string &sqlForDeletingByPrimaryKey() { static const std::string sql = "delete from " + tableName + " where id = $1"; return sql; } std::string sqlForInserting(bool &needSelection) const { std::string sql = "insert into " + tableName + " ("; size_t parametersCount = 0; needSelection = false; if (dirtyFlag_[0]) { sql += "user_id,"; ++parametersCount; } if (dirtyFlag_[1]) { sql += "user_name,"; ++parametersCount; } if (dirtyFlag_[2]) { sql += "password,"; ++parametersCount; } if (dirtyFlag_[3]) { sql += "org_name,"; ++parametersCount; } if (dirtyFlag_[4]) { sql += "signature,"; ++parametersCount; } if (dirtyFlag_[5]) { sql += "avatar_id,"; ++parametersCount; } sql += "id,"; ++parametersCount; if (dirtyFlag_[7]) { sql += "salt,"; ++parametersCount; } sql += "admin,"; ++parametersCount; if (!dirtyFlag_[8]) { needSelection = true; } needSelection = true; if (parametersCount > 0) { sql[sql.length() - 1] = ')'; sql += " values ("; } else sql += ") values ("; int placeholder = 1; char placeholderStr[64]; size_t n = 0; if (dirtyFlag_[0]) { n = sprintf(placeholderStr, "$%d,", placeholder++); sql.append(placeholderStr, n); } if (dirtyFlag_[1]) { n = sprintf(placeholderStr, "$%d,", placeholder++); sql.append(placeholderStr, n); } if (dirtyFlag_[2]) { n = sprintf(placeholderStr, "$%d,", placeholder++); sql.append(placeholderStr, n); } if (dirtyFlag_[3]) { n = sprintf(placeholderStr, "$%d,", placeholder++); sql.append(placeholderStr, n); } if (dirtyFlag_[4]) { n = sprintf(placeholderStr, "$%d,", placeholder++); sql.append(placeholderStr, n); } if (dirtyFlag_[5]) { n = sprintf(placeholderStr, "$%d,", placeholder++); sql.append(placeholderStr, n); } sql += "default,"; if (dirtyFlag_[7]) { n = sprintf(placeholderStr, "$%d,", placeholder++); sql.append(placeholderStr, n); } if (dirtyFlag_[8]) { n = sprintf(placeholderStr, "$%d,", placeholder++); sql.append(placeholderStr, n); } else { sql += "default,"; } if (parametersCount > 0) { sql.resize(sql.length() - 1); } if (needSelection) { sql.append(") returning *"); } else { sql.append(1, ')'); } LOG_TRACE << sql; return sql; } }; } // namespace postgres } // namespace drogon_model