'team_id:json_int', 'OwnerId' => 'owner_id:json_int', 'Priority' => 'priority:json_string', 'Message' => 'body:json_string', ); /** * @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() ) { $message = $this->object; if(! $message instanceof ChatTeamPushNotificationMessage) return []; $values = parent::serialize($expand, $fields, $relations, $params); if($message->isSent()){ $values['sent_date'] = $message->getSentDate()->getTimestamp(); } if (!empty($expand)) { $expand = explode(',', $expand); foreach ($expand as $relation) { switch (trim($relation)) { case 'owner':{ if(isset($values['owner_id'])) { unset($values['owner_id']); $values['owner'] = SerializerRegistry::getInstance()->getSerializer($message->getOwner())->serialize(); } } break; case 'team':{ if(isset($values['team_id'])) { unset($values['team_id']); $values['team'] = SerializerRegistry::getInstance()->getSerializer($message->getTeam())->serialize(); } } break; } } } return $values; } }