<?php
declare(strict_types=1);
namespace Croisiland\CommonBundle\Entity\Itinerary;
use Crea\ParameterBundle\Entity\Parameter;
use Crea\ToolsBundle\Entity\LifecycleUserIdentifierTrait;
use Croisiland\CommonBundle\Entity\Company\Company;
use Croisiland\CommonBundle\Entity\Traits\ListOrderTrait;
use Croisiland\CommonBundle\Repository\Itinerary\ActivityRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=ActivityRepository::class)
*
* @ORM\Table(
* uniqueConstraints={
*
* @ORM\UniqueConstraint(name="activity_unique", columns={"code", "company_id"})
* }
* )
*/
class Activity
{
use ListOrderTrait;
use LifecycleUserIdentifierTrait;
/**
* @ORM\Id
*
* @ORM\GeneratedValue
*
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* @ORM\Column(type="string", length=255, nullable=false)
*/
private ?string $code = null;
/**
* @ORM\Column(type="string", length=255, nullable=false)
*/
private ?string $name = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $description = null;
/**
* @ORM\ManyToOne(targetEntity=Parameter::class)
*
* @ORM\JoinColumn(nullable=false)
*/
private ?Parameter $activityType = null;
/**
* @ORM\ManyToOne(targetEntity=Company::class)
*
* @ORM\JoinColumn(nullable=false)
*/
private ?Company $company = null;
/**
* @var Collection<int, ItineraryActivity>
*
* @ORM\OneToMany(targetEntity=ItineraryActivity::class, mappedBy="activity", orphanRemoval=true, cascade={"remove"})
*/
private $itineraryActivities;
public function __construct()
{
$this->itineraryActivities = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getCode(): ?string
{
return $this->code;
}
public function setCode(string $code): self
{
$this->code = $code;
return $this;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getActivityType(): ?Parameter
{
return $this->activityType;
}
public function setActivityType(?Parameter $activityType): self
{
$this->activityType = $activityType;
return $this;
}
public function getCompany(): ?Company
{
return $this->company;
}
public function setCompany(?Company $company): self
{
$this->company = $company;
return $this;
}
/**
* @return Collection<int, ItineraryActivity>
*/
public function getItineraryActivities(): Collection
{
return $this->itineraryActivities;
}
public function addItineraryActivity(ItineraryActivity $itineraryActivity): self
{
if (!$this->itineraryActivities->contains($itineraryActivity)) {
$this->itineraryActivities[] = $itineraryActivity;
$itineraryActivity->setActivity($this);
}
return $this;
}
public function removeItineraryActivity(ItineraryActivity $itineraryActivity): self
{
if ($this->itineraryActivities->removeElement($itineraryActivity)) {
// set the owning side to null (unless already changed)
if ($itineraryActivity->getActivity() === $this) {
$itineraryActivity->setActivity(null);
}
}
return $this;
}
}