github.com/aacfactory/fns-contrib/databases/sql@v1.2.84/dac/conditions/predicate.go (about)

     1  package conditions
     2  
     3  import "fmt"
     4  
     5  func Eq(field string, expression any) Predicate {
     6  	return Predicate{
     7  		Field:      field,
     8  		Operator:   Equal,
     9  		Expression: expression,
    10  	}
    11  }
    12  
    13  func NotEq(field string, expression any) Predicate {
    14  	return Predicate{
    15  		Field:      field,
    16  		Operator:   NotEqual,
    17  		Expression: expression,
    18  	}
    19  }
    20  
    21  func Gt(field string, expression any) Predicate {
    22  	return Predicate{
    23  		Field:      field,
    24  		Operator:   GreatThan,
    25  		Expression: expression,
    26  	}
    27  }
    28  
    29  func Gte(field string, expression any) Predicate {
    30  	return Predicate{
    31  		Field:      field,
    32  		Operator:   GreatThanOrEqual,
    33  		Expression: expression,
    34  	}
    35  }
    36  
    37  func Lt(field string, expression any) Predicate {
    38  	return Predicate{
    39  		Field:      field,
    40  		Operator:   LessThan,
    41  		Expression: expression,
    42  	}
    43  }
    44  
    45  func Lte(field string, expression any) Predicate {
    46  	return Predicate{
    47  		Field:      field,
    48  		Operator:   LessThanOrEqual,
    49  		Expression: expression,
    50  	}
    51  }
    52  
    53  func Between(field string, left any, right any) Predicate {
    54  	return Predicate{
    55  		Field:      field,
    56  		Operator:   BETWEEN,
    57  		Expression: []any{left, right},
    58  	}
    59  }
    60  
    61  func In(field string, expression ...any) Predicate {
    62  	return Predicate{
    63  		Field:      field,
    64  		Operator:   IN,
    65  		Expression: expression,
    66  	}
    67  }
    68  
    69  func NotIn(field string, expression ...any) Predicate {
    70  	return Predicate{
    71  		Field:      field,
    72  		Operator:   NOTIN,
    73  		Expression: expression,
    74  	}
    75  }
    76  
    77  func Like(field string, expression string) Predicate {
    78  	return Predicate{
    79  		Field:      field,
    80  		Operator:   LIKE,
    81  		Expression: fmt.Sprintf("%s%%", expression),
    82  	}
    83  }
    84  
    85  func LikeLast(field string, expression string) Predicate {
    86  	return Predicate{
    87  		Field:      field,
    88  		Operator:   LIKE,
    89  		Expression: fmt.Sprintf("%%%s", expression),
    90  	}
    91  }
    92  
    93  func LikeContains(field string, expression string) Predicate {
    94  	return Predicate{
    95  		Field:      field,
    96  		Operator:   LIKE,
    97  		Expression: fmt.Sprintf("%%%s%%", expression),
    98  	}
    99  }
   100  
   101  type Predicate struct {
   102  	Field      string
   103  	Operator   Operator
   104  	Expression any
   105  }
   106  
   107  func (predicate Predicate) name() string {
   108  	return "predicate"
   109  }