public function getData()
{
$result = ['attachment' => ['type' => 'template', 'payload' => ['template_type' => $this->type]]];
switch ($this->type) {
case self::TYPE_BUTTON:
$result['attachment']['payload']['text'] = $this->title;
$result['attachment']['payload']['buttons'] = [];
foreach ($this->buttons as $btn) {
$result['attachment']['payload']['buttons'][] = $btn->getData();
}
break;
case self::TYPE_GENERIC:
$result['attachment']['payload']['elements'] = [];
foreach ($this->elements as $btn) {
$result['attachment']['payload']['elements'][] = $btn->getData();
}
break;
case self::TYPE_RECEIPT:
$result['attachment']['payload']['recipient_name'] = $this->recipient_name;
$result['attachment']['payload']['order_number'] = $this->order_number;
$result['attachment']['payload']['currency'] = $this->currency;
$result['attachment']['payload']['payment_method'] = $this->payment_method;
$result['attachment']['payload']['order_url'] = $this->order_url;
$result['attachment']['payload']['timestamp'] = $this->timestamp;
$result['attachment']['payload']['elements'] = [];
foreach ($this->elements as $btn) {
$result['attachment']['payload']['elements'][] = $btn->getData();
}
$result['attachment']['payload']['address'] = $this->address->getData();
$result['attachment']['payload']['summary'] = $this->summary->getData();
$result['attachment']['payload']['adjustments'] = [];
foreach ($this->adjustments as $btn) {
$result['attachment']['payload']['adjustments'][] = $btn->getData();
}
break;
}
return ['recipient' => ['id' => $this->recipient], 'message' => $result];
}