<?phpdeclare(strict_types=1);namespace App\Program\Doctrine\Entity;use ApiPlatform\Core\Annotation\ApiResource;use App\Point\Doctrine\Entity\Account;use App\Program\Doctrine\Repository\ProfileRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping\Column;use Doctrine\ORM\Mapping\Entity;use Doctrine\ORM\Mapping\GeneratedValue;use Doctrine\ORM\Mapping\Id;use Doctrine\ORM\Mapping\JoinColumn;use Doctrine\ORM\Mapping\ManyToOne;use Doctrine\ORM\Mapping\OneToMany;use Doctrine\ORM\Mapping\Table;use Symfony\Component\Serializer\Annotation\Groups;use Symfony\Component\Validator\Constraints\NotBlank;use Symfony\Component\Validator\Constraints\NotNull;use Symfony\Component\Validator\Constraints\Valid;#[ApiResource( collectionOperations: [], itemOperations: ['get'], normalizationContext: ['groups' => ['read']])]#[Entity(repositoryClass: ProfileRepository::class)]#[Table(name: '`program_profile`')]class Profile{ #[Id] #[Column(type: 'integer')] #[GeneratedValue] #[Groups('read')] private ?int $id = null; #[Column] #[NotBlank] #[Groups('read')] private string $name = ''; #[ManyToOne(targetEntity: Program::class, inversedBy: 'profiles')] #[JoinColumn(nullable: false, onDelete: 'CASCADE')] #[NotNull(message: 'Veuillez sélectionner un programme.')] private Program $program; #[Column(type: 'point_expiration')] #[NotNull(message: 'Veuillez saisir une durée d\'expiration.')] #[Valid] private PointExpiration $pointExpiration; /** * @var Collection<array-key, Account> */ #[OneToMany(mappedBy: 'profile', targetEntity: Account::class)] private Collection $accounts; public function __construct() { $this->accounts = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getName(): string { return $this->name; } public function setName(string $name): void { $this->name = $name; } public function getPointExpiration(): PointExpiration { return $this->pointExpiration; } public function setPointExpiration(PointExpiration $pointExpiration): void { $this->pointExpiration = $pointExpiration; } public function getProgram(): Program { return $this->program; } public function setProgram(Program $program): void { $this->program = $program; } /** * @return Collection<array-key, Account> */ public function getAccounts(): Collection { return $this->accounts; }}