for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Billogram\Model\Invoice;
use Billogram\Model\CreatableFromArray;
/**
* @author Ibrahim Hizeoui <[email protected]>
*/
class Event implements CreatableFromArray
{
* @var \DateTime
private $createdAt;
* @var string
private $type;
* @var EventData
private $data;
* @return \DateTime
public function getCreatedAt(): \DateTime
return $this->createdAt;
}
* @param \DateTime $createdAt
*
* @return Event
public function setCreatedAt(\DateTime $createdAt)
$new = clone $this;
$new->createdAt = $createdAt;
return $new;
* @return string
public function getType(): string
return $this->type;
* @param string $type
public function setType(string $type)
$new->type = $type;
* @return EventData
public function getDate()
return $this->data;
* @param EventData $data
public function setDate(EventData $data)
$new->data = $data;
public function toArray()
$data = [];
if (null !== $this->createdAt) {
$data['created_at'] = $this->createdAt->getTimestamp();
if (null !== $this->type) {
$data['type'] = $this->type;
if (null !== $this->data) {
$data['data'] = $this->data->toArray();
return $data;
* Create an API response object from the HTTP response from the API server.
* @param array $data
* @return self
public static function createFromArray(array $data)
$event = new self();
$event->type = $data['type'] ?? null;
$event->createdAt = isset($data['created_at']) ? new \DateTime($data['created_at']) : null;
$event->data = isset($data['data']) ? EventData::createFromArray($data['data']) : null;
return $event;