query/include/matador/query/constraint.hpp

34 lines
1.1 KiB
C++

#ifndef MATADOR_CONSTRAINT_HPP
#define MATADOR_CONSTRAINT_HPP
#include <string>
namespace matador::utils {
enum class constraints : unsigned char;
}
namespace matador::query {
class constraint {
public:
constraint() = default;
constraint(std::string column_name, std::string table_name, utils::constraints type);
constraint(std::string column_name, std::string table_name, utils::constraints type, std::string referenced_table, std::string referenced_column);
[[nodiscard]] std::string column_name() const;
[[nodiscard]] std::string table_name() const;
[[nodiscard]] const utils::constraints& type() const;
[[nodiscard]] bool is_primary_key_constraint() const;
[[nodiscard]] bool is_foreign_key_constraint() const;
[[nodiscard]] bool is_unique_constraint() const;
[[nodiscard]] const std::string& referenced_table() const;
[[nodiscard]] const std::string& referenced_column() const;
private:
std::string column_name_;
std::string table_name_;
utils::constraints type_{};
std::string referenced_table_;
std::string referenced_column_;
};
}
#endif //MATADOR_CONSTRAINT_HPP