_id; } /** * Устанавливает id. * * @param string $id Идентификатор персональных данных, сохраненных в ЮKassa. * * @return $this */ public function setId($id) { if (!TypeCast::canCastToString($id)) { throw new InvalidPropertyValueTypeException('Invalid PersonalData id value type', 0, 'PersonalData.id', $id); } $length = mb_strlen($id, 'utf-8'); if ($length < PersonalDataInterface::MIN_LENGTH_ID || $length > PersonalDataInterface::MAX_LENGTH_ID) { throw new InvalidPropertyValueException('Invalid PersonalData id value', 0, 'PersonalData.id', $id); } $this->_id = (string)$id; return $this; } /** * Возвращает тип персональных данных. * * @return string Тип персональных данных */ public function getType() { return $this->_type; } /** * Устанавливает тип персональных данных. * * @param string $type Тип персональных данных * * @return $this */ public function setType($type) { if (!TypeCast::canCastToEnumString($type)) { throw new InvalidPropertyValueTypeException('Invalid PersonalData type value type', 0, 'PersonalData.type', $type); } if (!PersonalDataType::valueExists((string)$type)) { throw new InvalidPropertyValueException('Invalid PersonalData type value', 0, 'PersonalData.type', $type); } $this->_type = (string)$type; return $this; } /** * Возвращает статус персональных данных. * * @return string Статус персональных данных */ public function getStatus() { return $this->_status; } /** * Устанавливает статус персональных данных. * * @param string $status Статус персональных данных * * @return $this */ public function setStatus($status) { if (!TypeCast::canCastToEnumString($status)) { throw new InvalidPropertyValueTypeException('Invalid PersonalData status value type', 0, 'PersonalData.status', $status); } if (!PersonalDataStatus::valueExists((string)$status)) { throw new InvalidPropertyValueException('Invalid PersonalData status value', 0, 'PersonalData.status', $status); } $this->_status = (string)$status; return $this; } /** * Возвращает cancellation_details. * * @return PersonalDataCancellationDetails|null */ public function getCancellationDetails() { return $this->_cancellation_details; } /** * Устанавливает cancellation_details. * * @param PersonalDataCancellationDetails|array|null $cancellation_details * * @return $this */ public function setCancellationDetails($cancellation_details) { if ($cancellation_details === null) { $this->_cancellation_details = null; } elseif (is_array($cancellation_details)) { $this->_cancellation_details = new PersonalDataCancellationDetails($cancellation_details); } elseif ($cancellation_details instanceof PersonalDataCancellationDetails) { $this->_cancellation_details = $cancellation_details; } else { throw new InvalidPropertyValueTypeException( 'Invalid value type for "cancellation_details" parameter in PersonalData', 0, 'PersonalData.cancellation_details', $cancellation_details ); } return $this; } /** * Возвращает created_at. * * @return DateTime */ public function getCreatedAt() { return $this->_created_at; } /** * Устанавливает время создания персональных данных. * * @param DateTime|string|int $created_at Время создания персональных данных * * @return $this * @throws Exception */ public function setCreatedAt($created_at) { if ($created_at === null || $created_at === '') { throw new EmptyPropertyValueException('Empty created_at value', 0, 'PersonalData.createdAt'); } if (!TypeCast::canCastToDateTime($created_at)) { throw new InvalidPropertyValueTypeException('Invalid created_at value', 0, 'PersonalData.createdAt', $created_at); } $dateTime = TypeCast::castToDateTime($created_at); if ($dateTime === null) { throw new InvalidPropertyValueException('Invalid created_at value', 0, 'PersonalData.createdAt', $created_at); } $this->_created_at = $dateTime; return $this; } /** * Возвращает срок жизни объекта персональных данных. * * @return DateTime|null Срок жизни объекта персональных данных */ public function getExpiresAt() { return $this->_expires_at; } /** * Устанавливает срок жизни объекта персональных данных. * * @param DateTime|string|int|null $expires_at Срок жизни объекта персональных данных * * @return $this * @throws Exception */ public function setExpiresAt($expires_at = null) { if ($expires_at === null || $expires_at === '') { $this->_expires_at = null; } elseif (TypeCast::canCastToDateTime($expires_at)) { $dateTime = TypeCast::castToDateTime($expires_at); if ($dateTime === null) { throw new InvalidPropertyValueException('Invalid expires_at value', 0, 'PersonalData.expiresAt', $expires_at); } $this->_expires_at = $dateTime; } else { throw new InvalidPropertyValueTypeException('Invalid expires_at value', 0, 'PersonalData.expiresAt', $expires_at); } return $this; } /** * Возвращает любые дополнительные данные. * * @return array|null Любые дополнительные данные */ public function getMetadata() { return $this->_metadata; } /** * Устанавливает любые дополнительные данные. * * @param Metadata|array|null $metadata Любые дополнительные данные * * @return $this */ public function setMetadata($metadata = null) { if ($metadata === null || $metadata === '') { $this->_metadata = null; } elseif (is_array($metadata)) { $this->_metadata = new Metadata($metadata); } elseif ($metadata instanceof Metadata) { $this->_metadata = $metadata; } else { throw new InvalidPropertyValueTypeException( 'Invalid metadata type for "metadata" parameter in PersonalData', 0, 'PersonalData.metadata', $metadata ); } return $this; } }