<?php
namespace App\Entity\ChannelUserData\Cursus;
use App\Entity\Channel\Session;
use App\Repository\ChannelUserData\Cursus\SessionCursusRepository;
use Doctrine\ORM\Mapping as ORM;
use Drosalys\Bundle\ApiBundle\Serializer\Attributes\IdGroups;
use Symfony\Component\Validator\Constraints as Assert;
#[
ORM\Entity(repositoryClass: SessionCursusRepository::class),
ORM\Table(name: 'channel_user_data_cursus_session'),
]
class SessionCursus extends AbstractCursus
{
#[
ORM\ManyToOne(targetEntity: Session::class),
ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')
]
#[Assert\NotBlank]
#[IdGroups(['Sync'])]
private ?Session $session = null;
public function getSession(): ?Session
{
return $this->session;
}
public function setSession(?Session $session): static
{
$this->session = $session;
$this->setTraining($session->getTraining());
return $this;
}
public function getLabel(): ?string
{
$label = parent::getLabel();
$sessionLabel = $this->session?->getLabel();
if ($label && $sessionLabel) {
return $label . ' - ' . $sessionLabel;
}
return $sessionLabel;
}
public function getLabelType(): string
{
return $this->session ? $this->session->getLabel() : '';
}
}