diff --git a/app/init/constants.php b/app/init/constants.php index c2d529191b..3b6b553feb 100644 --- a/app/init/constants.php +++ b/app/init/constants.php @@ -46,6 +46,9 @@ const APP_DATABASE_ATTRIBUTE_DATETIME = 'datetime'; const APP_DATABASE_ATTRIBUTE_URL = 'url'; const APP_DATABASE_ATTRIBUTE_INT_RANGE = 'intRange'; const APP_DATABASE_ATTRIBUTE_FLOAT_RANGE = 'floatRange'; +const APP_DATABASE_ATTRIBUTE_POINT = 'point'; +const APP_DATABASE_ATTRIBUTE_LINE = 'line'; +const APP_DATABASE_ATTRIBUTE_POLYGON = 'polygon'; const APP_DATABASE_ATTRIBUTE_STRING_MAX_LENGTH = 1_073_741_824; // 2^32 bits / 4 bits per char const APP_DATABASE_TIMEOUT_MILLISECONDS_API = 15 * 1000; // 15 seconds const APP_DATABASE_TIMEOUT_MILLISECONDS_WORKER = 300 * 1000; // 5 minutes diff --git a/app/init/database/filters.php b/app/init/database/filters.php index 33f5d8077a..346387125c 100644 --- a/app/init/database/filters.php +++ b/app/init/database/filters.php @@ -92,6 +92,11 @@ Database::addFilter( $filters = $attribute->getAttribute('filters', []); $attribute->setAttribute('encrypt', in_array('encrypt', $filters)); break; + + case Database::VAR_POINT: + case Database::VAR_LINESTRING: + case Database::VAR_POLYGON: + break; } } diff --git a/app/init/database/formats.php b/app/init/database/formats.php index 6c73877576..f8545e3b54 100644 --- a/app/init/database/formats.php +++ b/app/init/database/formats.php @@ -41,3 +41,15 @@ Structure::addFormat(APP_DATABASE_ATTRIBUTE_FLOAT_RANGE, function ($attribute) { $max = $attribute['formatOptions']['max'] ?? INF; return new Range($min, $max, Range::TYPE_FLOAT); }, Database::VAR_FLOAT); + +Structure::addFormat(APP_DATABASE_ATTRIBUTE_POINT, function () { + return new \Utopia\Validator\Text(0, 0); +}, Database::VAR_POINT); + +Structure::addFormat(APP_DATABASE_ATTRIBUTE_LINE, function () { + return new \Utopia\Validator\Text(0, 0); +}, Database::VAR_LINESTRING); + +Structure::addFormat(APP_DATABASE_ATTRIBUTE_POLYGON, function () { + return new \Utopia\Validator\Text(0, 0); +}, Database::VAR_POLYGON);