setRepository->getAll() as $set) { $sets[] = $this->buildSetPayload($set); } return new JsonResponse([ 'sets' => $sets, ], 200); } /** * @return array{ * id: int, * name: string, * description: string, * iconImageUrl: string, * rootElementId: int|null * } */ private function buildSetPayload(DomainSet $set): array { $rootElement = $this->elementRepository->findRootBySet($set); return [ 'id' => $set->getId(), 'name' => $set->getName(), 'description' => $set->getDescription(), 'iconImageUrl' => $set->getIconImageUrl(), 'rootElementId' => $rootElement?->getId(), ]; } }