src/Entity/SharedEventCodeUsage.php line 19
<?phpdeclare(strict_types=1);namespace App\Entity;use App\Entity\Customer\Customer;use App\Repository\SharedEventCodeUsageRepository;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;/*** Trace un email (client) ayant utilisé un code événement partagé (rattachement API ou commande).*/#[ORM\Entity(repositoryClass: SharedEventCodeUsageRepository::class)]#[ORM\Table(name: 'app_shared_event_code_usage')]#[ORM\UniqueConstraint(name: 'uniq_shared_event_code_email', columns: ['shared_event_code_id', 'email'])]#[ORM\Index(name: 'idx_shared_event_code_id', columns: ['shared_event_code_id'])]class SharedEventCodeUsage{public const SOURCE_ATTACH = 'attach';public const SOURCE_ORDER = 'order';#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]private ?int $id = null;#[ORM\ManyToOne]#[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]private ?SharedEventCode $sharedEventCode = null;/** Email normalisé (minuscules). */#[ORM\Column(length: 255)]private string $email = '';#[ORM\ManyToOne]#[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]private ?Customer $customer = null;#[ORM\Column(type: Types::DATETIME_IMMUTABLE)]private ?\DateTimeImmutable $usedAt = null;/** attach = POST attach-shared-event ; order = commande avec code partagé */#[ORM\Column(length: 20)]private string $source = self::SOURCE_ATTACH;public function getId(): ?int{return $this->id;}public function getSharedEventCode(): ?SharedEventCode{return $this->sharedEventCode;}public function setSharedEventCode(?SharedEventCode $sharedEventCode): self{$this->sharedEventCode = $sharedEventCode;return $this;}public function getEmail(): string{return $this->email;}public function setEmail(string $email): self{$this->email = $email;return $this;}public function getCustomer(): ?Customer{return $this->customer;}public function setCustomer(?Customer $customer): self{$this->customer = $customer;return $this;}public function getUsedAt(): ?\DateTimeImmutable{return $this->usedAt;}public function setUsedAt(\DateTimeImmutable $usedAt): self{$this->usedAt = $usedAt;return $this;}public function getSource(): string{return $this->source;}public function setSource(string $source): self{$this->source = $source;return $this;}}