Article.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace internship\bo;
  3. use n2n\reflection\ObjectAdapter;
  4. use n2n\persistence\orm\attribute\ManyToOne;
  5. use n2n\persistence\orm\CascadeType;
  6. class Article extends ObjectAdapter implements \JsonSerializable {
  7. private int $id;
  8. private string $categoryName;
  9. private string $text;
  10. private string $title;
  11. #[ManyToOne(cascade:CascadeType::PERSIST)]
  12. private ?ArticleGroup $articleGroup;
  13. /**
  14. * @return int
  15. */
  16. public function getId(): int {
  17. return $this->id;
  18. }
  19. /**
  20. * @param int $id
  21. */
  22. public function setId(int $id): void {
  23. $this->id = $id;
  24. }
  25. /**
  26. * @return string
  27. */
  28. public function getCategoryName(): string {
  29. return $this->categoryName;
  30. }
  31. /**
  32. * @param string $categoryName
  33. */
  34. public function setCategoryName(string $categoryName): void {
  35. $this->categoryName = $categoryName;
  36. }
  37. /**
  38. * @return string
  39. */
  40. public function getText(): string {
  41. return $this->text;
  42. }
  43. /**
  44. * @param string $text
  45. */
  46. public function setText(string $text): void {
  47. $this->text = $text;
  48. }
  49. /**
  50. * @return string
  51. */
  52. public function getTitle(): string {
  53. return $this->title;
  54. }
  55. /**
  56. * @param string $title
  57. */
  58. public function setTitle(string $title): void {
  59. $this->title = $title;
  60. }
  61. /**
  62. * @return string
  63. */
  64. public function getArticleGroup(): ArticleGroup {
  65. return $this->articleGroup;
  66. }
  67. /**
  68. * @param string $articleGroup
  69. */
  70. public function setArticleGroup(ArticleGroup $articleGroup): void {
  71. $this->articleGroup = $articleGroup;
  72. }
  73. function jsonSerialize(): mixed {
  74. return [
  75. 'id' => $this->id,
  76. 'title' => $this->title,
  77. 'categoryName' => $this->categoryName,
  78. 'text' => $this->text,
  79. 'article_group_id' => $this->articleGroup?->getId(),
  80. ];
  81. }
  82. }