From a9b9c2cce9a471e3bbfcf742e61c857167df2f82 Mon Sep 17 00:00:00 2001 From: Dev Date: Tue, 2 Dec 2025 00:15:26 +0000 Subject: [PATCH] - Heavy rework on search request handling of entities --- .../Attribute/FieldValueModifier.php | 9 ++++ .../Attribute/PropertyValueModifier/Pad.php | 20 ++++++++ src/SearchRequest/ParsedSearchParameter.php | 48 +++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 src/SearchRequest/Attribute/FieldValueModifier.php create mode 100644 src/SearchRequest/Attribute/PropertyValueModifier/Pad.php create mode 100644 src/SearchRequest/ParsedSearchParameter.php diff --git a/src/SearchRequest/Attribute/FieldValueModifier.php b/src/SearchRequest/Attribute/FieldValueModifier.php new file mode 100644 index 0000000..30cd8ae --- /dev/null +++ b/src/SearchRequest/Attribute/FieldValueModifier.php @@ -0,0 +1,9 @@ +length, $this->padWith, $this->type); + } +} \ No newline at end of file diff --git a/src/SearchRequest/ParsedSearchParameter.php b/src/SearchRequest/ParsedSearchParameter.php new file mode 100644 index 0000000..7054375 --- /dev/null +++ b/src/SearchRequest/ParsedSearchParameter.php @@ -0,0 +1,48 @@ +searchMethod) { + SearchMethodEnum::Like => "%$this->value%", + SearchMethodEnum::LikeLeft => "%$this->value", + SearchMethodEnum::LikeRight => "$this->value%", + default => $this->value, + }; + } + + public function operator() : string { + if (isset($this->operator)) { + return $this->operator; + } + + return match ($this->searchMethod) { + SearchMethodEnum::Like => SearchRequestInterface::SEARCH_REQUEST_OPERATOR_LIKE, + default => SearchRequestInterface::SEARCH_REQUEST_OPERATOR_EQUAL, + }; + } + + + public function condition() : string { + if (isset($this->condition)) { + return $this->condition; + } + + return match ($this->searchMethod) { + SearchMethodEnum::Like => SearchRequestInterface::SEARCH_REQUEST_CONDITION_OR, + default => SearchRequestInterface::SEARCH_REQUEST_CONDITION_AND, + }; + } +} \ No newline at end of file