<?php
namespace App\Entity;
use App\Entity\Traits\TimestampableTrait;
use App\Repository\StakeholderSubscriptionRepository;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: StakeholderSubscriptionRepository::class)]
#[ORM\UniqueConstraint(
name: 'uniq_stakeholder_subscription',
columns: ['stakeholder_id', 'subscription_type_id']
)]
class StakeholderSubscription
{
use TimestampableTrait;
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private ?int $id = null;
#[ORM\ManyToOne(targetEntity: Stakeholder::class, inversedBy: 'stakeholderSubscriptions')]
#[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
private ?Stakeholder $stakeholder = null;
#[ORM\ManyToOne(targetEntity: StakeholderSubscriptionType::class)]
#[ORM\JoinColumn(nullable: false)]
private ?StakeholderSubscriptionType $subscriptionType = null;
#[ORM\Column(type: 'boolean')]
private bool $isSubscribed = true;
public function getId(): ?int
{
return $this->id;
}
public function getStakeholder(): ?Stakeholder
{
return $this->stakeholder;
}
public function setStakeholder(?Stakeholder $stakeholder): self
{
$this->stakeholder = $stakeholder;
return $this;
}
public function getSubscriptionType(): ?StakeholderSubscriptionType
{
return $this->subscriptionType;
}
public function setSubscriptionType(?StakeholderSubscriptionType $subscriptionType): self
{
$this->subscriptionType = $subscriptionType;
return $this;
}
public function isSubscribed(): bool
{
return $this->isSubscribed;
}
public function setIsSubscribed(bool $isSubscribed): self
{
$this->isSubscribed = $isSubscribed;
return $this;
}
}