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 }