/* * appmysql.h * * Created on: Oct 14, 2025 * Author: user */ #ifndef SRC_APPMYSQL_H_ #define SRC_APPMYSQL_H_ #include #include "jsonobject.h" const uint32 appSQLCfgVer = 1; class CAppDatabaseCfg : public CJSONRootObject { public: enum AppDbType { appDataSQLite, appDataMySQL, appDataMSSQL }; private: AppDbType dbType_; std::string server_; std::string server2_; // 2nd line for config screen in case one line input is not long enough std::string user_; std::string password_; std::string database_; bool chg_; public: CAppDatabaseCfg(void) : dbType_(appDataSQLite), server_("127.0.0.1"), server2_(""), user_(MYSQL_DEFAULT_DBUSER), password_(""), database_(MYSQL_DEFAULT_DB), chg_(false) { // Setup JSON tags // Associate string "sqlite" equals enum value appDataSQLite and "mysql" equals enum value appDataMySQL std::string jsonEnum = "sqlite=" + std::to_string(appDataSQLite) + ",mysql=" + std::to_string(appDataMySQL) + ",mssql=" + std::to_string(appDataMSSQL); SetTagEnum(&dbType_, "dbtype", jsonEnum); SetTag(server_, "server"); SetTag(server2_, "server2"); SetTag(user_, "user"); SetTag(password_, "passw"); SetTag(database_, "database"); } AppDbType GetDBType(void) { return dbType_; } // std::string& GetServer(void) { return server_; } // std::string& GetServer2(void) { return server2_; } std::string GetServer(void) { return server_ + server2_; } std::string& GetUser(void) { return user_; } std::string& GetPassword(void) { return password_; } std::string& GetDatabase(void) { return database_; } void UpdateConfigForm(CForm *pForm); int Config(void); int FirstTimePrompt(void); bool GetChanged(void) { return chg_; } const char* GetDBTypeLabel(void) { switch(dbType_) { case appDataMySQL: return "MySQL"; case appDataMSSQL: return "SQL Server"; default: return "SQLite"; } } }; #endif /* SRC_APPMYSQL_H_ */