#ifndef AUTHOR_HPP #define AUTHOR_HPP #include "matador/object/collection.hpp" #include "matador/object/object_ptr.hpp" #include "matador/utils/access.hpp" namespace demo { struct book; struct author { unsigned int id{}; std::string first_name; std::string last_name; std::string date_of_birth; unsigned short year_of_birth{}; bool distinguished{false}; matador::object::collection> books; template void process( Operator& op ) { using namespace matador; namespace field = access; field::primary_key( op, "id", id ); field::attribute( op, "first_name", first_name, VarChar63 ); field::attribute( op, "last_name", last_name, VarChar63 ); field::attribute( op, "date_of_birth", date_of_birth, VarChar63 ); field::attribute( op, "year_of_birth", year_of_birth ); field::attribute( op, "distinguished", distinguished ); field::has_many( op, "books", books, "author_id", utils::CascadeNoneFetchLazy ); } }; } #endif //AUTHOR_HPP