#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 ) { namespace field = matador::access; field::primary_key( op, "id", id ); field::attribute( op, "first_name", first_name, 63 ); field::attribute( op, "last_name", last_name, 63 ); field::attribute( op, "date_of_birth", date_of_birth, 31 ); field::attribute( op, "year_of_birth", year_of_birth ); field::attribute( op, "distinguished", distinguished ); field::has_many( op, "books", books, "author_id", matador::utils::CascadeNoneFetchLazy ); } }; } #endif //AUTHOR_HPP