url ?? '/no episodeUrl/'; } public function getTitle(): string { return $this->title; } public function getUrl(): ?string { return $this->url; } public function getName(): string { return $this->name; } public function getLink(): ?string { return $this->link; } public function getImage(): ?string { return $this->image; } public function getDescription(): ?string { return $this->description; } public function getFetchedAtUnix(): int { return $this->fetchedAtUnix; } public function getGuid(): string { return $this->guid; } public function getType(): ?string { return $this->type; } public function getSize(): ?int { return $this->size; } public function getPubDate(): ?\DateTime { return $this->pubDate; } public function getDuration(): ?string { return $this->duration; } public function getAction(): ?EpisodeAction { return $this->action; } /** * @return EpisodeActionExtraDataType */ public function toArray(): array { return [ 'title' => $this->title, 'url' => $this->url, 'name' => $this->name, 'link' => $this->link, 'image' => $this->image, 'description' => $this->description, 'fetchedAtUnix' => $this->fetchedAtUnix, 'guid' => $this->guid, 'type' => $this->type, 'size' => $this->size, 'pubDate' => $this->pubDate, 'duration' => $this->duration, 'action' => $this->action instanceof EpisodeAction ? $this->action->toArray() : null, ]; } /** * @return EpisodeActionExtraDataType */ public function jsonSerialize(): mixed { return $this->toArray(); } }