woocommerce-paypal-payments/modules/ppcp-api-client/src/Entity/Payer.php

190 lines
4.4 KiB
PHP

<?php
/**
* The payer object.
*
* @package WooCommerce\PayPalCommerce\ApiClient\Entity
*/
declare (strict_types=1);
namespace WooCommerce\PayPalCommerce\ApiClient\Entity;
use DateTime;
/**
* Class Payer
* The customer who sends the money.
*/
class Payer
{
/**
* The name.
*
* @var PayerName|null
*/
private $name;
/**
* The email address.
*
* @var string
*/
private $email_address;
/**
* The payer id.
*
* @var string
*/
private $payer_id;
/**
* The birth date.
*
* @var DateTime|null
*/
private $birthdate;
/**
* The address.
*
* @var Address|null
*/
private $address;
/**
* The phone.
*
* @var PhoneWithType|null
*/
private $phone;
/**
* The tax info.
*
* @var PayerTaxInfo|null
*/
private $tax_info;
/**
* Payer constructor.
*
* @param PayerName|null $name The name.
* @param string $email_address The email.
* @param string $payer_id The payer id.
* @param Address|null $address The address.
* @param DateTime|null $birthdate The birth date.
* @param PhoneWithType|null $phone The phone.
* @param PayerTaxInfo|null $tax_info The tax info.
*/
public function __construct(?\WooCommerce\PayPalCommerce\ApiClient\Entity\PayerName $name, string $email_address, string $payer_id, ?\WooCommerce\PayPalCommerce\ApiClient\Entity\Address $address = null, ?DateTime $birthdate = null, ?\WooCommerce\PayPalCommerce\ApiClient\Entity\PhoneWithType $phone = null, ?\WooCommerce\PayPalCommerce\ApiClient\Entity\PayerTaxInfo $tax_info = null)
{
$this->name = $name;
$this->email_address = $email_address;
$this->payer_id = $payer_id;
$this->birthdate = $birthdate;
$this->address = $address;
$this->phone = $phone;
$this->tax_info = $tax_info;
}
/**
* Returns the name.
*
* @return PayerName|null
*/
public function name(): ?\WooCommerce\PayPalCommerce\ApiClient\Entity\PayerName
{
return $this->name;
}
/**
* Sets the name.
*
* @param PayerName|null $name The value.
*/
public function set_name(?\WooCommerce\PayPalCommerce\ApiClient\Entity\PayerName $name): void
{
$this->name = $name;
}
/**
* Returns the email address.
*
* @return string
*/
public function email_address(): string
{
return $this->email_address;
}
/**
* Returns the payer id.
*
* @return string
*/
public function payer_id(): string
{
return $this->payer_id;
}
/**
* Returns the birth date.
*
* @return DateTime|null
*/
public function birthdate()
{
return $this->birthdate;
}
/**
* Returns the address.
*
* @return Address|null
*/
public function address()
{
return $this->address;
}
/**
* Sets the address.
*
* @param Address|null $address The value.
*/
public function set_address(?\WooCommerce\PayPalCommerce\ApiClient\Entity\Address $address): void
{
$this->address = $address;
}
/**
* Returns the phone.
*
* @return PhoneWithType|null
*/
public function phone()
{
return $this->phone;
}
/**
* Returns the tax info.
*
* @return PayerTaxInfo|null
*/
public function tax_info()
{
return $this->tax_info;
}
/**
* Returns the object as array.
*
* @return array
*/
public function to_array()
{
$payer = array('email_address' => $this->email_address());
if ($this->name) {
$payer['name'] = $this->name->to_array();
}
if ($this->address && 2 === strlen($this->address->country_code())) {
$payer['address'] = $this->address->to_array();
}
if ($this->payer_id) {
$payer['payer_id'] = $this->payer_id;
}
if ($this->phone) {
$payer['phone'] = $this->phone->to_array();
}
if ($this->tax_info) {
$payer['tax_info'] = $this->tax_info->to_array();
}
if ($this->birthdate) {
$payer['birth_date'] = $this->birthdate->format('Y-m-d');
}
return $payer;
}
}