src/Program/Doctrine/Entity/Profile.php line 32

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Program\Doctrine\Entity;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use App\Point\Doctrine\Entity\Account;
  6. use App\Program\Doctrine\Repository\ProfileRepository;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Doctrine\Common\Collections\Collection;
  9. use Doctrine\ORM\Mapping\Column;
  10. use Doctrine\ORM\Mapping\Entity;
  11. use Doctrine\ORM\Mapping\GeneratedValue;
  12. use Doctrine\ORM\Mapping\Id;
  13. use Doctrine\ORM\Mapping\JoinColumn;
  14. use Doctrine\ORM\Mapping\ManyToOne;
  15. use Doctrine\ORM\Mapping\OneToMany;
  16. use Doctrine\ORM\Mapping\Table;
  17. use Symfony\Component\Serializer\Annotation\Groups;
  18. use Symfony\Component\Validator\Constraints\NotBlank;
  19. use Symfony\Component\Validator\Constraints\NotNull;
  20. use Symfony\Component\Validator\Constraints\Valid;
  21. #[ApiResource(
  22.     collectionOperations: [],
  23.     itemOperations: ['get'],
  24.     normalizationContext: ['groups' => ['read']]
  25. )]
  26. #[Entity(repositoryClassProfileRepository::class)]
  27. #[Table(name'`program_profile`')]
  28. class Profile
  29. {
  30.     #[Id]
  31.     #[Column(type'integer')]
  32.     #[GeneratedValue]
  33.     #[Groups('read')]
  34.     private ?int $id null;
  35.     #[Column]
  36.     #[NotBlank]
  37.     #[Groups('read')]
  38.     private string $name '';
  39.     #[ManyToOne(targetEntityProgram::class, inversedBy'profiles')]
  40.     #[JoinColumn(nullablefalseonDelete'CASCADE')]
  41.     #[NotNull(message'Veuillez sélectionner un programme.')]
  42.     private Program $program;
  43.     #[Column(type'point_expiration')]
  44.     #[NotNull(message'Veuillez saisir une durée d\'expiration.')]
  45.     #[Valid]
  46.     private PointExpiration $pointExpiration;
  47.     /**
  48.      * @var Collection<array-key, Account>
  49.      */
  50.     #[OneToMany(mappedBy'profile'targetEntityAccount::class)]
  51.     private Collection $accounts;
  52.     public function __construct()
  53.     {
  54.         $this->accounts = new ArrayCollection();
  55.     }
  56.     public function getId(): ?int
  57.     {
  58.         return $this->id;
  59.     }
  60.     public function getName(): string
  61.     {
  62.         return $this->name;
  63.     }
  64.     public function setName(string $name): void
  65.     {
  66.         $this->name $name;
  67.     }
  68.     public function getPointExpiration(): PointExpiration
  69.     {
  70.         return $this->pointExpiration;
  71.     }
  72.     public function setPointExpiration(PointExpiration $pointExpiration): void
  73.     {
  74.         $this->pointExpiration $pointExpiration;
  75.     }
  76.     public function getProgram(): Program
  77.     {
  78.         return $this->program;
  79.     }
  80.     public function setProgram(Program $program): void
  81.     {
  82.         $this->program $program;
  83.     }
  84.     /**
  85.      * @return Collection<array-key, Account>
  86.      */
  87.     public function getAccounts(): Collection
  88.     {
  89.         return $this->accounts;
  90.     }
  91. }