*/ private const CLIENT_FIELDS = [ 'id', 'name', 'registration_number', 'status', 'support_email', 'support_phone', 'preferred_contact_method', 'physical_address', 'postal_address', 'general_notes', 'client_id', 'client_name', 'reference_no', 'priority', 'work_requested', 'completed_at', 'closed_at', 'allocated_hours', 'used_hours', 'remaining_hours', 'usage_percentage', 'status_label', 'period_type', 'start_date', 'end_date', 'hours', ]; /** @return array */ public function clientFacing(array $record): array { $safe = []; foreach (self::CLIENT_FIELDS as $field) { if (array_key_exists($field, $record)) { $safe[$field] = $record[$field]; } } return $safe; } /** @return array */ public function internal(array $record): array { return array_diff_key($record, $this->clientFacing($record)); } /** @return array{client: array, internal: array} */ public function map(array $record): array { return ['client' => $this->clientFacing($record), 'internal' => $this->internal($record)]; } }