'address_1:json_string', 'Address2' => 'address_2:json_string', 'ZipCode' => 'zip_code', 'City' => 'city:json_string', 'State' => 'state:json_string', 'Country' => 'country:json_string', 'Lng' => 'lng', 'Lat' => 'lat', 'WebsiteUrl' => 'website_url:json_string', 'DisplayOnSite' => 'display_on_site:json_boolean', 'DetailsPage' => 'details_page:json_boolean', 'LocationMessage' => 'location_message: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() ) { $values = parent::serialize($expand, $fields, $relations); $location = $this->object; if(!$location instanceof SummitGeoLocatedLocation) return []; // maps $maps = []; foreach($location->getMaps() as $image) { if(!$image->hasPicture()) continue; $maps[] = SerializerRegistry::getInstance()->getSerializer($image)->serialize(); } $values['maps'] = $maps; // images $images = []; foreach($location->getImages() as $image) { if(!$image->hasPicture()) continue; $images[] = SerializerRegistry::getInstance()->getSerializer($image)->serialize(); } $values['images'] = $images; return $values; } }