Builds WHERE clause conditions with proper precedence.
condition_builder & end_group()
End a condition group (adds closing parenthesis)
void clear()
Clear all conditions.
condition_builder & add_raw(const std::string &raw, logical_op op=logical_op::AND)
Add a raw SQL condition.
std::string logical_op_to_string(logical_op op) const
std::vector< condition_node > nodes_
condition_builder & begin_group()
Begin a condition group (adds opening parenthesis)
std::string build(const value_formatter &formatter) const
Build the WHERE clause.
std::string format_condition(const condition &cond, const value_formatter &formatter) const
bool empty() const
Check if builder is empty.
condition_builder & add(const condition &cond, logical_op op=logical_op::AND)
Add a condition.
Defines the enumeration of supported database types.
std::variant< std::string, int64_t, double, bool, std::nullptr_t > database_value
logical_op
Logical operators for combining conditions.
Represents a single WHERE condition.
core::database_value value
Value to compare.
std::string raw
Raw SQL condition (if any)
std::string field
Field name.
std::string op
Operator (=, !=, <, >, <=, >=, LIKE, IN, etc.)