22
33namespace Nanvaie \DatabaseRepository \Models \Repository ;
44
5- use App \Models \Entities \Entity ;
6- use App \Models \Factories \IFactory ;
7- use App \Models \General \Polygon ;
8- use App \Models \Griew \FilterOperator ;
5+ use Nanvaie \DatabaseRepository \Models \Entity \Entity ;
6+ use Nanvaie \DatabaseRepository \Models \Factory \IFactory ;
7+ use Nanvaie \DatabaseRepository \Models \Enums \GriewFilterOperator ;
98use Illuminate \Database \ConnectionInterface ;
109use Illuminate \Database \Query \Builder ;
1110use Illuminate \Support \Collection ;
@@ -209,13 +208,13 @@ protected function processFilter(Builder $query, array $filters): Builder
209208 {
210209 foreach ($ filters as $ filter ) {
211210 switch (strtolower (snake_case ($ filter ->operator ))) {
212- case FilterOperator ::IS_NULL :
211+ case GriewFilterOperator ::IS_NULL :
213212 $ query ->whereNull ($ filter ->name );
214213 break ;
215- case FilterOperator ::IS_NOT_NULL :
214+ case GriewFilterOperator ::IS_NOT_NULL :
216215 $ query ->whereNotNull ($ filter ->name );
217216 break ;
218- case FilterOperator ::IS_EQUAL_TO :
217+ case GriewFilterOperator ::IS_EQUAL_TO :
219218 if (is_string ($ filter ->operand1 ) && Str::contains ($ filter ->operand1 , '| ' )) {
220219 // create in functionality with equal string
221220 $ arr = array_filter (explode ('| ' , $ filter ->operand1 ));
@@ -224,7 +223,7 @@ protected function processFilter(Builder $query, array $filters): Builder
224223 $ query ->where ($ filter ->name , '= ' , $ filter ->operand1 );
225224 }
226225 break ;
227- case FilterOperator ::IS_NOT_EQUAL_TO :
226+ case GriewFilterOperator ::IS_NOT_EQUAL_TO :
228227 if (is_string ($ filter ->operand1 ) && Str::contains ($ filter ->operand1 , '| ' )) {
229228 // create in functionality with equal string
230229 $ arr = array_filter (explode ('| ' , $ filter ->operand1 ));
@@ -233,49 +232,43 @@ protected function processFilter(Builder $query, array $filters): Builder
233232 $ query ->where ($ filter ->name , '<> ' , $ filter ->operand1 );
234233 }
235234 break ;
236- case FilterOperator ::START_WITH :
235+ case GriewFilterOperator ::START_WITH :
237236 $ query ->where ($ filter ->name , 'LIKE ' , $ filter ->operand1 . '% ' );
238237 break ;
239- case FilterOperator ::DOES_NOT_CONTAINS :
238+ case GriewFilterOperator ::DOES_NOT_CONTAINS :
240239 $ query ->where ($ filter ->name , 'NOT LIKE ' , '% ' . $ filter ->operand1 . '% ' );
241240 break ;
242- case FilterOperator ::CONTAINS :
241+ case GriewFilterOperator ::CONTAINS :
243242 $ query ->where ($ filter ->name , 'LIKE ' , '% ' . $ filter ->operand1 . '% ' );
244243 break ;
245- case FilterOperator ::ENDS_WITH :
244+ case GriewFilterOperator ::ENDS_WITH :
246245 $ query ->where ($ filter ->name , 'LIKE ' , '% ' . $ filter ->operand1 );
247246 break ;
248- case FilterOperator ::IN :
247+ case GriewFilterOperator ::IN :
249248 $ query ->whereIn ($ filter ->name , $ filter ->operand1 );
250249 break ;
251- case FilterOperator ::NOT_IN :
250+ case GriewFilterOperator ::NOT_IN :
252251 $ query ->whereNotIn ($ filter ->name , $ filter ->operand1 );
253252 break ;
254- case FilterOperator ::BETWEEN :
253+ case GriewFilterOperator ::BETWEEN :
255254 $ query ->whereBetween ($ filter ->name , array ($ filter ->operand1 , $ filter ->operand2 ));
256255 break ;
257- case FilterOperator ::IS_AFTER_THAN_OR_EQUAL_TO :
258- case FilterOperator ::IS_GREATER_THAN_OR_EQUAL_TO :
256+ case GriewFilterOperator ::IS_AFTER_THAN_OR_EQUAL_TO :
257+ case GriewFilterOperator ::IS_GREATER_THAN_OR_EQUAL_TO :
259258 $ query ->where ($ filter ->name , '>= ' , $ filter ->operand1 );
260259 break ;
261- case FilterOperator ::IS_AFTER_THAN :
262- case FilterOperator ::IS_GREATER_THAN :
260+ case GriewFilterOperator ::IS_AFTER_THAN :
261+ case GriewFilterOperator ::IS_GREATER_THAN :
263262 $ query ->where ($ filter ->name , '> ' , $ filter ->operand1 );
264263 break ;
265- case FilterOperator ::IS_LESS_THAN_OR_EQUAL_TO :
266- case FilterOperator ::IS_BEFORE_THAN_OR_EQUAL_TO :
264+ case GriewFilterOperator ::IS_LESS_THAN_OR_EQUAL_TO :
265+ case GriewFilterOperator ::IS_BEFORE_THAN_OR_EQUAL_TO :
267266 $ query ->where ($ filter ->name , '<= ' , $ filter ->operand1 );
268267 break ;
269- case FilterOperator ::IS_LESS_THAN :
270- case FilterOperator ::IS_BEFORE_THAN :
268+ case GriewFilterOperator ::IS_LESS_THAN :
269+ case GriewFilterOperator ::IS_BEFORE_THAN :
271270 $ query ->where ($ filter ->name , '< ' , $ filter ->operand1 );
272271 break ;
273- case FilterOperator::IS_INSIDE_POLYGON :
274- $ name = $ filter ->name ;
275- /** @var Polygon $polygon */
276- $ polygon = $ filter ->operand1 ;
277- $ query ->whereRaw ("Contains(GeomFromText(' {$ polygon ->toRaw ()}'), {$ name }) " );
278- break ;
279272 }
280273 }
281274
0 commit comments