seasonDtoList)) { foreach ($this->seasonDtoList as $seasonDto) { $seasonList = $seasonDto->toArray(); } } if (!empty($this->playerDtoList)) { foreach ($this->playerDtoList as $playerDto) { $playerList = $playerDto->toArray(); } } return [ 'name' => $this->name ?? '', 'dayOfWeekForHomeGame' => $this->dayOfWeekForHomeGame ?? '', 'playerList' => $playerList, 'seasonList' => $seasonList, 'captainId' => $this->captainDto?->id, 'createdAt' => $this->createdAt->format('Y-m-d') ]; } public function fillFromArray(array $dataList): void { if (isset($dataList['id'])) { $this->id = $dataList['id']; } if (!empty($dataList['name'])) { $this->name = $dataList['name']; } if (!empty($dataList['dayOfWeekForHomeGame'])) { $this->dayOfWeekForHomeGame = $dataList['dayOfWeekForHomeGame']; } if (isset($dataList['active'])) { $this->active = $dataList['active']; } if (!empty($dataList['seasonList'])) { foreach ($dataList['seasonList'] as $seasonItem) { $seasonDto = new SeasonDto(); $seasonDto->fillFromArray($seasonItem); $this->seasonDtoList[] = $seasonDto; } } if (!empty($dataList['playerList'])) { foreach ($dataList['playerList'] as $playerItem) { $playerDto = new PlayerDto(); $playerDto->fillFromArray($playerItem); $this->playerDtoList[] = $playerDto; } } if (!empty($dataList['captain'])) { $captainDto = new UserDto(); $captainDto->fillFromArray($dataList['captain']); $this->captainDto = $captainDto; } if (!empty($dataList['createdAt'])) { $this->createdAt = \DateTimeImmutable::createFromFormat('Y-m-d H:i:s', $dataList['createdAt'], new \DateTimeZone('Europe/Madrid')); } } public function fillFromObject(Team $teamEntity): void { if ($teamEntity->getId()) { $this->id = $teamEntity->getId(); } if ($teamEntity->getName()) { $this->name = $teamEntity->getName(); } if ($teamEntity->getDayOfWeekForHomeGame()) { $this->dayOfWeekForHomeGame = $teamEntity->getDayOfWeekForHomeGame(); } if ($teamEntity->getPlayers()) { foreach ($teamEntity->getPlayers() as $playerEntity) { $playerDto = new PlayerDto(); $playerDto->fillFromObject($playerEntity); $this->playerDtoList[] = $playerDto; } } if ($teamEntity->getCreatedAt()) { $this->createdAt = $teamEntity->getCreatedAt(); } } public function validate(): void { if (empty($this->name)) { $this->validationErrors[] = 'El nombre del equipo no puede estar vacĂ­o.'; } if (!empty($this->validationErrors)) { throw new ValidationException($this->validationErrors); } } }