src/Entity/Book.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Core\Annotation\ApiFilter;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\OrderFilter;
  6. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
  7. use App\Repository\BookRepository;
  8. use DateTime;
  9. use Doctrine\ORM\Mapping\Id;
  10. use Doctrine\ORM\Mapping\Column;
  11. use Doctrine\ORM\Mapping\GeneratedValue;
  12. use Doctrine\ORM\Mapping as ORM;
  13. use Doctrine\ORM\PersistentCollection;
  14. use Symfony\Component\Serializer\Annotation\Groups;
  15. /**
  16.  * @ORM\Entity(repositoryClass=BookRepository::class)
  17.  * @ORM\HasLifecycleCallbacks()
  18.  */
  19. // #[ApiResource(mercure: true, normalizationContext: ['groups' => ['book:details']])]
  20. #[ApiResource(mercuretruesecurity"is_granted('ROLE_ADMIN') or is_granted('ROLE_USER')")]
  21. #[ApiFilter(OrderFilter::class)]
  22. class Book extends GeneralSuperClass
  23. {
  24.     /**
  25.      * @Id
  26.      * @Column(type="integer")
  27.      * @GeneratedValue(strategy="SEQUENCE")
  28.      * @Groups({"book:details", "book:details", "bgc:details", "golfclub:details"})
  29.      */
  30.     #[ApiFilter(SearchFilter::class)]
  31.     public $id;
  32.     /**
  33.      * @ORM\Column(type="string", nullable=true)
  34.      * @Groups({"book:details", "book:details", "bgc:details", "golfclub:details"})
  35.      */
  36.     #[ApiFilter(SearchFilter::class)]
  37.     public string|null $name;
  38.     /**
  39.      * @ORM\Column(type="datetime", nullable=true)
  40.      * @Groups({"book:details", "book:details", "bgc:details", "golfclub:details"})
  41.      */
  42.     #[ApiFilter(SearchFilter::class)]
  43.     public DateTime|null $active_from;
  44.     /**
  45.      * @ORM\Column(type="datetime", nullable=true)
  46.      * @Groups({"book:details", "book:details", "bgc:details", "golfclub:details"})
  47.      */
  48.     #[ApiFilter(SearchFilter::class)]
  49.     public DateTime|null $active_to;
  50.     /**
  51.      * @ORM\Column(type="integer", nullable=true)
  52.      * @Groups({"book:details", "bgc:details", "golfclub:details"})
  53.      */
  54.     #[ApiFilter(SearchFilter::class)]
  55.     public int|null $serial_nr_from;
  56.     /**
  57.      * @ORM\Column(type="integer", nullable=true)
  58.      * @Groups({"book:details", "bgc:details", "golfclub:details"})
  59.      */
  60.     #[ApiFilter(SearchFilter::class)]
  61.     public int|null $serial_nr_to;
  62.     /**
  63.      * @ORM\Column(type="string", length=255, nullable=true)
  64.      */
  65.     #[ApiFilter(SearchFilter::class)]
  66.     public string|null $pic;
  67.     /**
  68.      * @ORM\Column(type="string", length=255, nullable=true)
  69.      * @Groups({"book:details", "bgc:details", "golfclub:details"})
  70.      */
  71.     #[ApiFilter(SearchFilter::class)]
  72.     public string|null $status;
  73.     /**
  74.      * @ORM\Column(type="integer", nullable=true)
  75.      * @Groups({"book:details", "bgc:details"})
  76.      */
  77.     #[ApiFilter(SearchFilter::class)]
  78.     public int|null $vouchers_cnt;
  79.     /**
  80.      * @ORM\Column(type="string", length=255, nullable=true)
  81.      * @Groups({"book:details", "bgc:details"})
  82.      */
  83.     #[ApiFilter(SearchFilter::class)]
  84.     public string|null $entry_id;
  85.     /**
  86.      * @ORM\Column(type="string", length=255, nullable=true)
  87.      * @Groups({"book:details", "bgc:details"})
  88.      */
  89.     #[ApiFilter(SearchFilter::class)]
  90.     public string|null $cover_image;
  91.     /**
  92.      * @ORM\Column(type="json", nullable=true)
  93.      * @Groups({"book:details"})
  94.      */
  95.     #[ApiFilter(SearchFilter::class)]
  96.     public array|null $fields = [];
  97.     // /**
  98.     //  * Many features have one product. This is the owning side.
  99.     //  * @ORM\OneToMany(targetEntity="App\Entity\BookGolfClub", mappedBy="book")
  100.     //  * @Groups({"book:details"})
  101.     //  */
  102.     // public PersistentCollection $bookGolfClub;
  103.     ## /**
  104.     ##  * Inverse Side
  105.     ##  *
  106.     ##  * @ORM\ManyToMany(targetEntity="Golfclub", mappedBy="books", nullable=true)
  107.     ##  */
  108.     ## public $golfclubs;
  109. }