'external_order_id:json_string', 'ExternalAttendeeId' => 'external_attendee_id:json_string', 'BoughtDate' => 'bought_date:datetime_epoch', 'TicketTypeId' => 'ticket_type_id:json_int', 'OwnerId' => 'owner_id:json_int', ]; /** * @param null $expand * @param array $fields * @param array $relations * @param array $params * @return array */ public function serialize($expand = null, array $fields = array(), array $relations = array(), array $params = array()) { $ticket = $this->object; if (!$ticket instanceof SummitAttendeeTicket) return []; $values = parent::serialize($expand, $fields, $relations, $params); if (!empty($expand)) { $exp_expand = explode(',', $expand); foreach ($exp_expand as $relation) { switch (trim($relation)) { case 'ticket_type': { if(!$ticket->hasTicketType()) continue; unset($values['ticket_type_id']); $values['ticket_type'] = SerializerRegistry::getInstance()->getSerializer($ticket->getTicketType())->serialize(); } break; case 'owner_id': { if(!$ticket->hasOwner()) continue; unset($values['owner_id']); $values['owner'] = SerializerRegistry::getInstance()->getSerializer($ticket->getOwner())->serialize(); } break; } } } return $values; } }