<?php
namespace App\Entity;
use App\Repository\FilmProjectUpdateRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: FilmProjectUpdateRepository::class)]
class FilmProjectUpdate
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(nullable: true)]
private array $category = [];
#[ORM\Column(nullable: true)]
private array $content = [];
#[ORM\ManyToOne(inversedBy: 'filmProjectUpdates')]
private ?FilmProject $filmProject = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $createdAt = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $modifiedAt = null;
#[ORM\OneToMany(mappedBy: 'filmProjectUpdate', targetEntity: ProjectUpdateTypeNomination::class, cascade: ['persist', 'remove'])]
private Collection $projectUpdateTypeNominations;
#[ORM\Column(length: 255, nullable: true)]
private ?string $projectProgress = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $projectMilestoneUpdate = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $fundraisingFunder = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $fundraisingCampaign = null;
#[ORM\Column(nullable: true)]
private ?float $fundraisingGoal = null;
#[ORM\Column(type: Types::ARRAY, nullable: true)]
private array $partnerships = [];
#[ORM\OneToMany(mappedBy: 'updateReleaseFilmProject', targetEntity: ProjectUpdateTypeNomination::class, cascade: ['persist', 'remove'])]
private Collection $releaseUpdates;
#[ORM\OneToMany(mappedBy: 'eventFilmProjectUpdate', targetEntity: ProjectUpdateTypeNomination::class, cascade: ['persist', 'remove'])]
private Collection $projectUpdateTypeEvents;
#[ORM\OneToMany(mappedBy: 'resourceFilmProjectUpdate', targetEntity: ProjectUpdateTypeNomination::class, cascade: ['persist', 'remove'])]
private Collection $projectUpdateTypeResources;
#[ORM\OneToMany(mappedBy: 'responseFilmProjectUpdate', targetEntity: ProjectUpdateTypeNomination::class, cascade: ['persist', 'remove'])]
private Collection $projectUpdateTypeResponse;
#[ORM\OneToMany(mappedBy: 'involveFilmProjectUpdate', targetEntity: ProjectUpdateTypeNomination::class, cascade: ['persist', 'remove'])]
private Collection $projectUpdateTypeInvolves;
#[ORM\OneToMany(mappedBy: 'otherFilmProjectUpdate', targetEntity: ProjectUpdateTypeNomination::class, cascade: ['persist', 'remove'])]
private Collection $projectUpdateTypeOthers;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $impactEducation = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $impactAwareness = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $impactAction = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $impactSystemChange = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $impactCommunityOutcomes = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $image = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $title = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $description = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $email = null;
public function __construct()
{
$this->projectUpdateTypeNominations = new ArrayCollection();
$this->releaseUpdates = new ArrayCollection();
$this->projectUpdateTypeEvents = new ArrayCollection();
$this->projectUpdateTypeResources = new ArrayCollection();
$this->projectUpdateTypeResponse = new ArrayCollection();
$this->projectUpdateTypeInvolves = new ArrayCollection();
$this->projectUpdateTypeOthers = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getCategory(): ?array
{
return $this->category;
}
public function setCategory(?array $category): self
{
$this->category = $category;
return $this;
}
public function getContent(): array
{
return $this->content;
}
public function setContent(?array $content): self
{
$this->content = $content;
return $this;
}
public function getFilmProject(): ?FilmProject
{
return $this->filmProject;
}
public function setFilmProject(?FilmProject $filmProject): self
{
$this->filmProject = $filmProject;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getModifiedAt(): ?\DateTimeInterface
{
return $this->modifiedAt;
}
public function setModifiedAt(?\DateTimeInterface $modifiedAt): self
{
$this->modifiedAt = $modifiedAt;
return $this;
}
/**
* @return Collection<int, ProjectUpdateTypeNomination>
*/
public function getProjectUpdateTypeNominations(): Collection
{
return $this->projectUpdateTypeNominations;
}
public function addProjectUpdateTypeNomination(ProjectUpdateTypeNomination $projectUpdateTypeNomination): self
{
if (!$this->projectUpdateTypeNominations->contains($projectUpdateTypeNomination)) {
$this->projectUpdateTypeNominations->add($projectUpdateTypeNomination);
$projectUpdateTypeNomination->setFilmProjectUpdate($this);
}
return $this;
}
public function removeProjectUpdateTypeNomination(ProjectUpdateTypeNomination $projectUpdateTypeNomination): self
{
if ($this->projectUpdateTypeNominations->removeElement($projectUpdateTypeNomination)) {
// set the owning side to null (unless already changed)
if ($projectUpdateTypeNomination->getFilmProjectUpdate() === $this) {
$projectUpdateTypeNomination->setFilmProjectUpdate(null);
}
}
return $this;
}
public function getProjectProgress(): ?string
{
return $this->projectProgress;
}
public function setProjectProgress(?string $projectProgress): self
{
$this->projectProgress = $projectProgress;
return $this;
}
public function getProjectMilestoneUpdate(): ?string
{
return $this->projectMilestoneUpdate;
}
public function setProjectMilestoneUpdate(?string $projectMilestoneUpdate): self
{
$this->projectMilestoneUpdate = $projectMilestoneUpdate;
return $this;
}
public function getFundraisingFunder(): ?string
{
return $this->fundraisingFunder;
}
public function setFundraisingFunder(?string $fundraisingFunder): self
{
$this->fundraisingFunder = $fundraisingFunder;
return $this;
}
public function getFundraisingCampaign(): ?string
{
return $this->fundraisingCampaign;
}
public function setFundraisingCampaign(?string $fundraisingCampaign): self
{
$this->fundraisingCampaign = $fundraisingCampaign;
return $this;
}
public function getFundraisingGoal(): ?float
{
return $this->fundraisingGoal;
}
public function setFundraisingGoal(?float $fundraisingGoal): self
{
$this->fundraisingGoal = $fundraisingGoal;
return $this;
}
public function getPartnerships(): array
{
return $this->partnerships;
}
public function setPartnerships(?array $partnerships): self
{
$this->partnerships = $partnerships;
return $this;
}
/**
* @return Collection<int, ProjectUpdateTypeNomination>
*/
public function getReleaseUpdates(): Collection
{
return $this->releaseUpdates;
}
public function addReleaseUpdate(ProjectUpdateTypeNomination $releaseUpdate): self
{
if (!$this->releaseUpdates->contains($releaseUpdate)) {
$this->releaseUpdates->add($releaseUpdate);
$releaseUpdate->setUpdateReleaseFilmProject($this);
}
return $this;
}
public function removeReleaseUpdate(ProjectUpdateTypeNomination $releaseUpdate): self
{
if ($this->releaseUpdates->removeElement($releaseUpdate)) {
// set the owning side to null (unless already changed)
if ($releaseUpdate->getUpdateReleaseFilmProject() === $this) {
$releaseUpdate->setUpdateReleaseFilmProject(null);
}
}
return $this;
}
/**
* @return Collection<int, ProjectUpdateTypeNomination>
*/
public function getProjectUpdateTypeEvents(): Collection
{
return $this->projectUpdateTypeEvents;
}
public function addProjectUpdateTypeEvent(ProjectUpdateTypeNomination $projectUpdateTypeEvent): self
{
if (!$this->projectUpdateTypeEvents->contains($projectUpdateTypeEvent)) {
$this->projectUpdateTypeEvents->add($projectUpdateTypeEvent);
$projectUpdateTypeEvent->setEventFilmProjectUpdate($this);
}
return $this;
}
public function removeProjectUpdateTypeEvent(ProjectUpdateTypeNomination $projectUpdateTypeEvent): self
{
if ($this->projectUpdateTypeEvents->removeElement($projectUpdateTypeEvent)) {
// set the owning side to null (unless already changed)
if ($projectUpdateTypeEvent->getEventFilmProjectUpdate() === $this) {
$projectUpdateTypeEvent->setEventFilmProjectUpdate(null);
}
}
return $this;
}
/**
* @return Collection<int, ProjectUpdateTypeNomination>
*/
public function getProjectUpdateTypeResources(): Collection
{
return $this->projectUpdateTypeResources;
}
public function addProjectUpdateTypeResource(ProjectUpdateTypeNomination $projectUpdateTypeResource): self
{
if (!$this->projectUpdateTypeResources->contains($projectUpdateTypeResource)) {
$this->projectUpdateTypeResources->add($projectUpdateTypeResource);
$projectUpdateTypeResource->setResourceFilmProjectUpdate($this);
}
return $this;
}
public function removeProjectUpdateTypeResource(ProjectUpdateTypeNomination $projectUpdateTypeResource): self
{
if ($this->projectUpdateTypeResources->removeElement($projectUpdateTypeResource)) {
// set the owning side to null (unless already changed)
if ($projectUpdateTypeResource->getResourceFilmProjectUpdate() === $this) {
$projectUpdateTypeResource->setResourceFilmProjectUpdate(null);
}
}
return $this;
}
/**
* @return Collection<int, ProjectUpdateTypeNomination>
*/
public function getProjectUpdateTypeResponse(): Collection
{
return $this->projectUpdateTypeResponse;
}
public function addProjectUpdateTypeResponse(ProjectUpdateTypeNomination $projectUpdateTypeResponse): self
{
if (!$this->projectUpdateTypeResponse->contains($projectUpdateTypeResponse)) {
$this->projectUpdateTypeResponse->add($projectUpdateTypeResponse);
$projectUpdateTypeResponse->setResponseFilmProjectUpdate($this);
}
return $this;
}
public function removeProjectUpdateTypeResponse(ProjectUpdateTypeNomination $projectUpdateTypeResponse): self
{
if ($this->projectUpdateTypeResponse->removeElement($projectUpdateTypeResponse)) {
// set the owning side to null (unless already changed)
if ($projectUpdateTypeResponse->getResponseFilmProjectUpdate() === $this) {
$projectUpdateTypeResponse->setResponseFilmProjectUpdate(null);
}
}
return $this;
}
/**
* @return Collection<int, ProjectUpdateTypeNomination>
*/
public function getProjectUpdateTypeInvolves(): Collection
{
return $this->projectUpdateTypeInvolves;
}
public function addProjectUpdateTypeInvolve(ProjectUpdateTypeNomination $projectUpdateTypeInvolve): self
{
if (!$this->projectUpdateTypeInvolves->contains($projectUpdateTypeInvolve)) {
$this->projectUpdateTypeInvolves->add($projectUpdateTypeInvolve);
$projectUpdateTypeInvolve->setInvolveFilmProjectUpdate($this);
}
return $this;
}
public function removeProjectUpdateTypeInvolve(ProjectUpdateTypeNomination $projectUpdateTypeInvolve): self
{
if ($this->projectUpdateTypeInvolves->removeElement($projectUpdateTypeInvolve)) {
// set the owning side to null (unless already changed)
if ($projectUpdateTypeInvolve->getInvolveFilmProjectUpdate() === $this) {
$projectUpdateTypeInvolve->setInvolveFilmProjectUpdate(null);
}
}
return $this;
}
/**
* @return Collection<int, ProjectUpdateTypeNomination>
*/
public function getProjectUpdateTypeOthers(): Collection
{
return $this->projectUpdateTypeOthers;
}
public function addProjectUpdateTypeOther(ProjectUpdateTypeNomination $projectUpdateTypeOther): self
{
if (!$this->projectUpdateTypeOthers->contains($projectUpdateTypeOther)) {
$this->projectUpdateTypeOthers->add($projectUpdateTypeOther);
$projectUpdateTypeOther->setOtherFilmProjectUpdate($this);
}
return $this;
}
public function removeProjectUpdateTypeOther(ProjectUpdateTypeNomination $projectUpdateTypeOther): self
{
if ($this->projectUpdateTypeOthers->removeElement($projectUpdateTypeOther)) {
// set the owning side to null (unless already changed)
if ($projectUpdateTypeOther->getOtherFilmProjectUpdate() === $this) {
$projectUpdateTypeOther->setOtherFilmProjectUpdate(null);
}
}
return $this;
}
public function getImpactEducation(): ?string
{
return $this->impactEducation;
}
public function setImpactEducation(?string $impactEducation): self
{
$this->impactEducation = $impactEducation;
return $this;
}
public function getImpactAwareness(): ?string
{
return $this->impactAwareness;
}
public function setImpactAwareness(?string $impactAwareness): self
{
$this->impactAwareness = $impactAwareness;
return $this;
}
public function getImpactAction(): ?string
{
return $this->impactAction;
}
public function setImpactAction(?string $impactAction): self
{
$this->impactAction = $impactAction;
return $this;
}
public function getImpactSystemChange(): ?string
{
return $this->impactSystemChange;
}
public function setImpactSystemChange(?string $impactSystemChange): self
{
$this->impactSystemChange = $impactSystemChange;
return $this;
}
public function getImpactCommunityOutcomes(): ?string
{
return $this->impactCommunityOutcomes;
}
public function setImpactCommunityOutcomes(?string $impactCommunityOutcomes): self
{
$this->impactCommunityOutcomes = $impactCommunityOutcomes;
return $this;
}
public function getImage(): ?string
{
return $this->image;
}
public function setImage(?string $image): self
{
$this->image = $image;
return $this;
}
public function getImageUrl(): ?string
{
$url = '';
if ($this->image) {
$url = '/uploads/projects/updates/' . $this->image;
}
return $url;
}
public function getTitle(): ?string
{
return $this->title;
}
public function setTitle(?string $title): self
{
$this->title = $title;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(?string $email): self
{
$this->email = $email;
return $this;
}
}