standardResponseMapper->map($soapResponse->ReponseStandard ?? null); $nbBovins = $this->toNullableInt($soapResponse->ReponseSpecifique->NbBovins ?? null) ?? 0; $startDate = null; $endDate = null; $includesEarTagStock = null; $animals = []; $earTagSeries = []; if (is_object($unzippedMessage)) { $infoNode = $unzippedMessage->InformationsMessage ?? null; if (is_object($infoNode)) { $startDate = $this->toNullableDate($infoNode->DateDebut ?? null); $endDate = $this->toNullableDate($infoNode->DateFin ?? null); $includesEarTagStock = $this->toNullableBool($infoNode->StockBoucles ?? null); } $bovinsNode = $unzippedMessage->Bovins->Bovin ?? null; foreach ($this->normalizeToList($bovinsNode) as $bovinNode) { if (!is_object($bovinNode)) { continue; } $animals[] = $this->animalSummaryMapper->map($bovinNode); } $seriesNode = $unzippedMessage->Boucles->SerieBoucles ?? null; foreach ($this->normalizeToList($seriesNode) as $serieNode) { if (!is_object($serieNode)) { continue; } $earTagSeries[] = new EarTagSeriesDto(rawNode: $serieNode); } } return new InventoryDto( standardResponse: $standardResponse, nbBovins: $nbBovins, startDate: $startDate, endDate: $endDate, includesEarTagStock: $includesEarTagStock, animals: $animals, earTagSeries: $earTagSeries, rawSoapResponse: $soapResponse, ); } }