Lines n/a 0 / 0
Functions and Methods n/a 0 / 0
Classes and Traits n/a 0 / 0
Name Lines Functions and Methods CRAP Classes and Traits
WhereType n/a 0 / 0 n/a 0 / 0 0 n/a 0 / 0
1<?php
2
3declare(strict_types=1);
4
5namespace BlueprintAU\Radiant\Database\Query\Enums;
6
7/**
8 * The shape of a where clause stored on the builder.
9 */
10enum WhereType: string
11{
12    /** A comparison like `column = ?` — keys: column, operator, value, boolean. */
13    case Basic = 'basic';
14
15    /** A range like `column between ? and ?` — keys: column, operator, value, boolean. */
16    case Between = 'between';
17
18    /** A null check like `column is null` — keys: column, operator, boolean. */
19    case Null = 'null';
20
21    /** A raw SQL condition — keys: sql, boolean. */
22    case Raw = 'raw';
23
24    /** A column-to-column comparison — keys: first, operator, second, boolean. */
25    case Column = 'column';
26
27    /** A nested group of wheres — keys: query, boolean. */
28    case Nested = 'nested';
29
30    /**
31     * An `EXISTS`/`NOT EXISTS` subquery — keys: query, negated, boolean.
32     *
33     * One case covers both spellings: `negated` decides whether the
34     * Grammar prefixes `NOT`.
35     */
36    case Exists = 'exists';
37
38    /**
39     * A `column IN (SELECT …)` / `column NOT IN (SELECT …)` subquery —
40     * keys: column, query, negated, boolean.
41     *
42     * One case covers both spellings: `negated` decides whether the
43     * Grammar inserts `NOT`.
44     */
45    case InSub = 'in-sub';
46}