diff --git a/include/matador/orm/session.hpp b/include/matador/orm/session.hpp index 03e376b..16eab0e 100644 --- a/include/matador/orm/session.hpp +++ b/include/matador/orm/session.hpp @@ -37,6 +37,40 @@ public: } }; + +class prototype_builder final { +public: + explicit prototype_builder(const std::unordered_map &statements_per_column) + : statements_per_column_(statements_per_column) {} + + template < class V > + static void on_primary_key(const char * /*id*/, V &/*pk*/, const utils::primary_key_attribute& /*attr*/ = utils::default_pk_attributes) {} + static void on_revision(const char * /*id*/, unsigned long long &/*rev*/) {} + template + static void on_attribute(const char * /*id*/, Type &/*obj*/, const utils::field_attributes &/*attr*/ = utils::null_attributes) {} + template + void on_belongs_to(const char *id, Pointer &obj, const utils::foreign_attributes &attr) { + + } + template + void on_has_one(const char *id, Pointer &obj, const utils::foreign_attributes &attr) { + + } + template + void on_has_many(const char * /*id*/, ContainerType &, const char *join_column, const utils::foreign_attributes &attr) { + } + template + void on_has_many_to_many(const char *id, ContainerType &/*cont*/, const char *join_column, const char *inverse_join_column, const utils::foreign_attributes &attr) { + + } + template + void on_has_many_to_many(const char *id, ContainerType &/*cont*/, const utils::foreign_attributes &attr) { + + } + +private: + const std::unordered_map &statements_per_column_; +}; class session final : public sql::executor { public: explicit session(session_context &&ctx);