diff --git a/app/Models/Validation/Messages/Factories/InformativeValidatorByNameFactory.php b/app/Models/Validation/Messages/Factories/InformativeValidatorByNameFactory.php new file mode 100644 index 0000000..9081f11 --- /dev/null +++ b/app/Models/Validation/Messages/Factories/InformativeValidatorByNameFactory.php @@ -0,0 +1,57 @@ +messages = $messages; + } + + public function getMessages(): array + { + return $this->messages; + } + + public function setName(string $name): void + { + $this->name = $name; + } + + public function getName(): string + { + return $this->name; + } + + abstract public function getValidatorByName(InformativeValidator $okValidator): Validator; + + public function create(): InformativeValidator + { + $okValidator = new OkInformativeValidator($this->messages['found']); + + $nameValidator = new NextInformativeValidator( + $this->messages['not_found'], + $this->getValidatorByName($okValidator), + $okValidator + ); + + return new NextInformativeValidator( + $this->messages['invalid_name'], + new EmptyNameValidator($this->name, $nameValidator), + $nameValidator + ); + } +} +