// // Created by selim on 06.11.22. // #ifndef AUTOCAT_GNOME_IDBENTITY_H #define AUTOCAT_GNOME_IDBENTITY_H #include #include #include #include #include using StringOptional = std::optional; using IntOptional = std::optional; using DoubleOptional = std::optional; struct IDBEntity { public: virtual std::string insertQuery() = 0; protected: static std::string readString(sqlite3_stmt* stmt, int column); static int readInt(sqlite3_stmt* stmt, int column); static double readDouble(sqlite3_stmt* stmt, int column); static StringOptional readStringOptional(sqlite3_stmt* stmt, int column); static IntOptional readIntOptional(sqlite3_stmt* stmt, int column); static DoubleOptional readDoubleOptional(sqlite3_stmt* stmt, int column); }; #endif //AUTOCAT_GNOME_IDBENTITY_H