News.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace internship\bo;
  3. use n2n\reflection\ObjectAdapter;
  4. use n2n\persistence\orm\attribute\Table;
  5. use nql\bo\Member;
  6. use n2n\io\managed\FileManager;
  7. use n2n\persistence\orm\attribute\Inheritance;
  8. use n2n\persistence\orm\InheritanceType;
  9. use n2n\persistence\orm\attribute\DiscriminatorValue;
  10. use n2n\persistence\orm\attribute\DiscriminatorColumn;
  11. use n2n\persistence\orm\attribute\EntityListeners;
  12. use n2n\persistence\orm\attribute\AttributeOverrides;
  13. use n2n\persistence\orm\attribute\MappedSuperclass;
  14. use n2n\persistence\orm\attribute\ManagedFile;
  15. use n2n\persistence\orm\attribute\ManyToOne;
  16. use n2n\persistence\orm\attribute\Embedded;
  17. use n2n\persistence\orm\attribute\Column;
  18. use n2n\persistence\orm\attribute\Id;
  19. use n2n\persistence\orm\attribute\AssociationOverrides;
  20. use n2n\persistence\orm\attribute\JoinColumn;
  21. use n2n\persistence\orm\CascadeType;
  22. use n2n\persistence\orm\attribute\OneToMany;
  23. use n2n\persistence\orm\attribute\JoinTable;
  24. use n2n\persistence\orm\attribute\OrderBy;
  25. use n2n\persistence\orm\attribute\OneToOne;
  26. use n2n\persistence\orm\attribute\ManyToMany;
  27. use internship\listeners\LastModListener;
  28. use n2n\persistence\orm\attribute\File;
  29. use n2n\web\http\controller\impl\mock\StringValueObjectMock;
  30. /* #[Inheritance(InheritanceType::TABLE_PER_CLASS)] */
  31. /* #[DiscriminatorValue('textItem')] */
  32. /* #[DiscriminatorColumn('type')] */
  33. /* #[AttributeOverrides([
  34. 'id' => 'news_id',
  35. 'title' => 'news_title',
  36. 'description' => 'news_description',
  37. 'text' => 'news_text'
  38. ])] */
  39. /* #[MappedSuperclass] */
  40. /* #[EntityListeners(LastModListener::class)] */
  41. /* #[OneToOne(Article::class)] */
  42. /* #[ManyToMany('articles', Article::class)] */
  43. /* #[OneToMany('assignement.assignementGroup', Member::class)]*/
  44. /* #[ManyToOne(targetEntity: BlogArticle::class, cascade: null, cascadeType: CascadeType::ALL, fetch: FetchType::EAGER)] */
  45. #[Table('newsarticle')]
  46. #[AttributeOverrides([
  47. 'text_finished' => 'text',
  48. 'description_finished' => 'description',
  49. ])]
  50. #[EntityListeners(LastModListener::class)]
  51. #[Inheritance(InheritanceType::SINGLE_TABLE)]
  52. #[DiscriminatorColumn('type')]
  53. #[DiscriminatorValue('news')]
  54. class News extends ObjectAdapter implements \JsonSerializable {
  55. public int $id;
  56. /* #[OrderBy(array('name' => 'ASC'))]
  57. #[Embedded(Address::class)]
  58. #[Column('firstname')]
  59. */
  60. /* #[ManagedFile(FileManager::TYPE_PUBLIC)] */
  61. /* #[AssociationOverrides(array( 'assignementGroup' => new JoinColumn('group_id')))] */
  62. /* #[JoinColumn('article_id')] */
  63. public \DateTime $lastMod;
  64. #[Column('title')]
  65. public string $title2;
  66. public ?string $description_finished = null;
  67. public ?string $text_finished;
  68. public function jsonSerialize(): mixed {
  69. return ['title' => $this->title2,
  70. 'description' => $this->description_finished,
  71. 'text' => $this->text_finished,
  72. 'last_Mod' => date('Y-m-d H:i:s', $this->lastMod->getTimestamp())];
  73. }
  74. }