public function mapToGoogle(Entity $obj_gds_entity)
{
// Base entity with key (partition applied later)
$obj_rest_entity = (object) ['key' => (object) ['path' => $this->buildKeyPath($obj_gds_entity)], 'properties' => (object) []];
// Properties
$arr_field_defs = $this->bestEffortFieldDefs($obj_gds_entity);
foreach ($obj_gds_entity->getData() as $str_field_name => $mix_value) {
if (isset($arr_field_defs[$str_field_name])) {
$obj_rest_entity->properties->{$str_field_name} = $this->createPropertyValue($arr_field_defs[$str_field_name], $mix_value);
} else {
$arr_dynamic_data = $this->determineDynamicType($mix_value);
$obj_rest_entity->properties->{$str_field_name} = $this->createPropertyValue(['type' => $arr_dynamic_data['type'], 'index' => true], $arr_dynamic_data['value']);
}
}
return $obj_rest_entity;
}