added foreign_attributes class containing cascade and fetch information for foreign relations

This commit is contained in:
2024-02-02 20:08:56 +01:00
parent aa221aa571
commit fa3ea28920
11 changed files with 124 additions and 44 deletions
+9 -10
View File
@@ -1,8 +1,6 @@
#ifndef QUERY_ACCESS_HPP
#define QUERY_ACCESS_HPP
#include "matador/utils/cascade_type.hpp"
#include <string>
#include <optional>
@@ -12,6 +10,7 @@ template < class Type, template < class ... > class ContainerType >
class container;
class field_attributes;
class foreign_attributes;
namespace access {
@@ -56,23 +55,23 @@ void attribute(Operator &op, const char *id, Type &value) {
}
template<class Operator, class Type>
void has_one(Operator &op, const char *id, Type &value, cascade_type cascade) {
op.on_has_one(id, value, cascade);
void has_one(Operator &op, const char *id, Type &value, const foreign_attributes &attr) {
op.on_has_one(id, value, attr);
}
template<class Operator, class Type>
void belongs_to(Operator &op, const char *id, Type &value, cascade_type cascade) {
op.on_belongs_to(id, value, cascade);
void belongs_to(Operator &op, const char *id, Type &value, const foreign_attributes &attr) {
op.on_belongs_to(id, value, attr);
}
template<class Operator, class Type, template<class ...> class ContainerType>
void has_many(Operator &op, const char *id, container<Type, ContainerType> &container, cascade_type cascade) {
op.on_has_many(id, container, cascade);
void has_many(Operator &op, const char *id, container<Type, ContainerType> &container, const foreign_attributes &attr) {
op.on_has_many(id, container, attr);
}
template<class Operator, class Type, template<class ...> class ContainerType>
void has_many(Operator &op, const char *id, container<Type, ContainerType> &container, const char *left_column, const char *right_column, cascade_type cascade) {
op.on_has_many(id, container, left_column, right_column, cascade);
void has_many(Operator &op, const char *id, container<Type, ContainerType> &container, const char *left_column, const char *right_column, const foreign_attributes &attr) {
op.on_has_many(id, container, left_column, right_column, attr);
}
}