categoryName = $categoryName; } if ($text !== null) { $this->text = $text; } if ($title !== null) { $this->title = $title; } } /** * @throws StatusException */ static function fromHttpData(HttpData $httpData): Article { return new Article($httpData->reqString('title'), $httpData->reqString('text'), $httpData->reqEnum('categoryName', ['sport'])); } /** * @return int */ public function getId(): int { return $this->id; } /** * @param int $id */ public function setId(int $id): void { $this->id = $id; } /** * @return string */ public function getCategoryName(): string { return $this->categoryName; } /** * @param string $categoryName */ public function setCategoryName(string $categoryName): void { $this->categoryName = $categoryName; } /** * @return string */ public function getText(): string { return $this->text; } /** * @param string $text */ public function setText(string $text): void { $this->text = $text; } /** * @return string */ public function getTitle(): string { return $this->title; } /** * @param string $title */ public function setTitle(string $title): void { $this->title = $title; } /** * @return ArticleGroup */ public function getArticleGroup(): ArticleGroup { return $this->articleGroup; } /** * @param ArticleGroup|null $articleGroup */ public function setArticleGroup(ArticleGroup|null $articleGroup): void { $this->articleGroup = $articleGroup; } function jsonSerialize(): mixed { return [ 'id' => $this->id, 'title' => $this->title, 'categoryName' => $this->categoryName, 'text' => $this->text, 'articleGroupId' => $this->articleGroup?->getId(), ]; } }