diff --git a/src/utils/cypher/converter/logic.ts b/src/utils/cypher/converter/logic.ts
index d1cf770eb22efb6569232d4b320c9d8ec043a56c..7b0a713001836ae4ade68a34e64e07daa3e16e64 100644
--- a/src/utils/cypher/converter/logic.ts
+++ b/src/utils/cypher/converter/logic.ts
@@ -1,4 +1,6 @@
 import { type AnyStatement } from 'ts-common/src/model/query/logic/general';
+import { NumberAggregationTypes } from 'ts-common/src/model/query/logic/number';
+import { StringFilterTypes, StringFunctionTypes } from 'ts-common/src/model/query/logic/string';
 import type { QueryCacheData } from './model';
 
 export function createWhereLogic(
@@ -30,24 +32,24 @@ export function extractLogicCypher(logicQuery: AnyStatement, cacheData: QueryCac
   switch (typeof logicQuery) {
     case 'object':
       if (Array.isArray(logicQuery)) {
-        let op = logicQuery[0].replace('_', '').toLowerCase();
+        const op = logicQuery[0];
+        let newOp = op.replace('_', '').toLowerCase();
         const right = logicQuery?.[2];
         const { logic: left, where: whereLogic } = extractLogicCypher(logicQuery[1], cacheData);
 
         switch (op) {
           case '!=':
-            op = '<>';
+            newOp = '<>';
             break;
           case '==':
-            if (right === '".*"') op = '=~'; // in case "equals to <empty string>", this is what happens
-            else op = '=';
+            if (right === '".*"') newOp = '=~'; // in case "equals to <empty string>", this is what happens
+            else newOp = '=';
             break;
-          case 'like':
-            op = '=~';
+          case StringFilterTypes.LIKE:
+            newOp = '=~';
             break;
-          case 'in':
-          case 'present in list':
-            op = 'IN';
+          case StringFilterTypes.IN:
+            newOp = 'IN';
             if (typeof right === 'string') {
               return {
                 logic: `(${left} IN [${right
@@ -59,9 +61,8 @@ export function extractLogicCypher(logicQuery: AnyStatement, cacheData: QueryCac
               };
             }
             break;
-          case 'not in':
-          case 'not in list':
-            op = 'NOT IN';
+          case StringFilterTypes.NOT_IN:
+            newOp = 'NOT IN';
             if (typeof right === 'string') {
               return {
                 logic: `(NOT ${left} IN [${right
@@ -73,19 +74,21 @@ export function extractLogicCypher(logicQuery: AnyStatement, cacheData: QueryCac
               };
             }
             break;
-          case 'isempty':
+          case StringFilterTypes.EMPTY:
             return { logic: `(${left} IS NULL OR ${left} = "")`, where: whereLogic };
-          case 'isnotempty':
+          case StringFilterTypes.NOT_EMPTY:
             return { logic: `(${left} IS NOT NULL AND ${left} <> "")`, where: whereLogic };
-          case 'lower':
+          case StringFunctionTypes.LOWER:
             return { logic: `toLower(${left})`, where: whereLogic };
-          case 'upper':
+          case StringFunctionTypes.UPPER:
             return { logic: `toUpper(${left})`, where: whereLogic };
-          case 'avg':
-          case 'count':
-          case 'max':
-          case 'min':
-          case 'sum':
+          case StringFunctionTypes.LENGTH:
+            return { logic: `size(${left})`, where: whereLogic };
+          case NumberAggregationTypes.AVG:
+          case NumberAggregationTypes.COUNT:
+          case NumberAggregationTypes.MAX:
+          case NumberAggregationTypes.MIN:
+          case NumberAggregationTypes.SUM:
             return createWhereLogic(op, left, whereLogic, cacheData);
         }
         if (logicQuery.length > 2 && logicQuery[2]) {
@@ -95,12 +98,12 @@ export function extractLogicCypher(logicQuery: AnyStatement, cacheData: QueryCac
           for (const where of whereLogicRight) {
             whereLogic.add(where);
           }
-          if (op === '=~') {
+          if (newOp === '=~') {
             rightMutable = `(".*" + ${rightMutable} + ".*")`;
           }
-          return { logic: `(${left} ${op} ${rightMutable})`, where: whereLogic };
+          return { logic: `(${left} ${newOp} ${rightMutable})`, where: whereLogic };
         }
-        return { logic: `(${op} ${left})`, where: whereLogic };
+        return { logic: `(${newOp} ${left})`, where: whereLogic };
       }
       return { logic: logicQuery, where: new Set() };
     case 'string':