formatNameField($value) : $this->formatAddressField($value); } // Handle other array types (checkboxes, multi-select) - join with comma if (is_array($value)) { $filtered = array_filter($value, function ($fieldValue) { return $fieldValue !== '' && $fieldValue !== null; }); return implode(', ', $filtered); } return (string)$value; } /** * Format name field as readable string. * * @param array $value * @return string */ private function formatNameField(array $value): string { $values = array_filter($value, function ($fieldValue) { return $fieldValue !== '' && $fieldValue !== null; }); if (count($values) < 2) { return implode(' ', $values); } $valuesList = array_values($values); $lastName = $valuesList[1] ?? ''; $firstName = $valuesList[0] ?? ''; $middle = isset($valuesList[2]) ? ' ' . implode(' ', array_slice($valuesList, 2)) : ''; return $lastName . ' ' . $firstName . $middle; } /** * Format address field as readable string. * * @param array $value * @return string */ private function formatAddressField(array $value): string { $parts = []; if (!empty($value['streetAddress'])) { $parts[] = $value['streetAddress']; } if (!empty($value['addressLine2'])) { $parts[] = $value['addressLine2']; } $cityStateZip = $this->buildCityStateZip($value); if ($cityStateZip) { $parts[] = $cityStateZip; } if (!empty($value['country'])) { $parts[] = $value['country']; } return implode("\n", $parts); } /** * Build city, state, zip line. * * @param array $value * @return string */ private function buildCityStateZip(array $value): string { $parts = array_filter([ $value['city'] ?? '', $value['state'] ?? '', $value['zip'] ?? '' ], function ($part) { return $part !== '' && $part !== null; }); return implode(', ', $parts); } }