_type; } /** * Устанавливает тип персональных данных. * * @param PersonalDataType|string|null $type Тип персональных данных * * @return self */ public function setType(mixed $type = null): self { $this->_type = $this->validatePropertyValue('_type', $type); return $this; } /** * Проверяет наличие типа персональных данных в запросе. * * @return bool True если тип персональных данных задан, false если нет */ public function hasType(): bool { return !empty($this->_type); } /** * Возвращает фамилию пользователя. * * @return string|null Фамилия пользователя */ public function getLastName(): ?string { return $this->_last_name; } /** * Устанавливает фамилию пользователя. * * @param string|null $last_name Фамилия пользователя * * @return self */ public function setLastName(?string $last_name = null): self { $this->_last_name = $this->validatePropertyValue('_last_name', $last_name); return $this; } /** * Проверяет наличие фамилии пользователя в запросе. * * @return bool True если фамилия пользователя задана, false если нет */ public function hasLastName(): bool { return !empty($this->_last_name); } /** * Возвращает имя пользователя. * * @return string|null Имя пользователя */ public function getFirstName(): ?string { return $this->_first_name; } /** * Устанавливает имя пользователя. * * @param string|null $first_name Имя пользователя * * @return self */ public function setFirstName(?string $first_name = null): self { $this->_first_name = $this->validatePropertyValue('_first_name', $first_name); return $this; } /** * Проверяет наличие имени пользователя в запросе. * * @return bool True если имя пользователя задано, false если нет */ public function hasFirstName(): bool { return !empty($this->_first_name); } /** * Возвращает отчество пользователя. * * @return null|string Отчество пользователя */ public function getMiddleName(): ?string { return $this->_middle_name; } /** * Устанавливает отчество пользователя. * * @param null|string $middle_name Отчество пользователя * * @return self */ public function setMiddleName(?string $middle_name = null): self { $this->_middle_name = $this->validatePropertyValue('_middle_name', $middle_name); return $this; } /** * Проверяет наличие отчества пользователя в запросе. * * @return bool True если отчество пользователя задано, false если нет */ public function hasMiddleName(): bool { return !empty($this->_middle_name); } /** * Возвращает любые дополнительные данные. * * @return Metadata|null Любые дополнительные данные */ public function getMetadata(): ?Metadata { return $this->_metadata; } /** * Устанавливает любые дополнительные данные. * * @param Metadata|array|null $metadata Любые дополнительные данные * * @return self */ public function setMetadata(mixed $metadata = null): self { $this->_metadata = $this->validatePropertyValue('_metadata', $metadata); return $this; } /** * Проверяет, были ли установлены метаданные. * * @return bool True если метаданные были установлены, false если нет */ public function hasMetadata(): bool { return !empty($this->_metadata) && $this->_metadata->count() > 0; } /** * Проверяет на валидность текущий объект * * @return bool True если объект запроса валиден, false если нет */ public function validate(): bool { if (!$this->hasType()) { $this->setValidationError('PersonalData type not specified'); return false; } if (!$this->hasLastName()) { $this->setValidationError('PersonalData last_name not specified'); return false; } if (!$this->hasFirstName()) { $this->setValidationError('PersonalData first_name not specified'); return false; } return true; } /** * Возвращает билдер объектов запросов создания платежа. * * @return CreatePersonalDataRequestBuilder Инстанс билдера объектов запросов */ public static function builder(): CreatePersonalDataRequestBuilder { return new CreatePersonalDataRequestBuilder(); } }