info; } /** * @return AlbumFile[] */ public function getFiles(): array { if (empty($this->files)) { $this->files = $this->fetchFiles(); } return $this->files; } /** * @return AlbumFile[] */ public function addFile(AlbumFile $file): array { if (empty($this->files)) { $this->files = $this->fetchFiles(); } array_push($this->files, $file); return $this->files; } /** * @return int[] */ public function getFileIds(): array { return array_map(fn (AlbumFile $file): int => $file->getFileId(), $this->getFiles()); } /** * @return AlbumFile[] */ private function fetchFiles(): array { return $this->albumMapper->getForAlbumIdAndUserWithFiles( $this->info->getId(), $this->info->getUserId(), $this->info->getDecodedFilters(), ); } }