_type; } /** * Устанавливает тип сделки. * * @param string|null $type Тип сделки * * @return self */ public function setType(?string $type = null): self { $this->_type = $this->validatePropertyValue('_type', $type); return $this; } /** * Проверяет наличие типа в создаваемой сделке. * * @return bool True если тип сделки есть, false если нет */ public function hasType(): bool { return isset($this->_type); } /** * Возвращает момент перечисления вам вознаграждения платформы. * * @return string|null Момент перечисления вам вознаграждения платформы */ public function getFeeMoment(): ?string { return $this->_fee_moment; } /** * Устанавливает момент перечисления вам вознаграждения платформы. * * @param string|null $fee_moment Момент перечисления вам вознаграждения платформы * * @return self */ public function setFeeMoment(?string $fee_moment = null): self { $this->_fee_moment = $this->validatePropertyValue('_fee_moment', $fee_moment); return $this; } /** * Проверяет, был ли установлен момент перечисления вознаграждения. * * @return bool True если момент перечисления был установлен, false если нет */ public function hasFeeMoment(): bool { return !empty($this->_fee_moment); } /** * Возвращает описание сделки. * * @return string|null Описание сделки. */ public function getDescription(): ?string { return $this->_description; } /** * Устанавливает описание сделки. * * @param string|null $description Описание сделки (не более 128 символов) * * @return self */ public function setDescription(?string $description = null): self { $this->_description = $this->validatePropertyValue('_description', $description); return $this; } /** * Проверяет наличие описания в создаваемой сделке. * * @return bool True если описание сделки есть, false если нет */ public function hasDescription(): bool { return null !== $this->_description; } /** * Возвращает данные оплаты установленные мерчантом * * @return Metadata|null Метаданные, привязанные к платежу */ public function getMetadata(): ?Metadata { return $this->_metadata; } /** * Проверяет, были ли установлены метаданные заказа. * * @return bool True если метаданные были установлены, false если нет */ public function hasMetadata(): bool { return !empty($this->_metadata) && $this->_metadata->count() > 0; } /** * Устанавливает метаданные, привязанные к платежу. * * @param string|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 validate(): bool { if (!$this->hasType()) { $this->setValidationError('Type field is required'); return false; } if (!$this->hasFeeMoment()) { $this->setValidationError('FeeMoment field is required'); return false; } return true; } /** * Возвращает билдер объектов запросов создания сделки. * * @return CreateDealRequestBuilder Инстанс билдера объектов запросов */ public static function builder(): CreateDealRequestBuilder { return new CreateDealRequestBuilder(); } }