<?php declare(strict_types=1);
namespace App\StartPlatz\Bundle\StartupBundle\Entity;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use App\StartPlatz\Bundle\StartupBundle\Repository\ProgramRepository;
#[ORM\Table(name: 'sp_programs')]
#[ORM\UniqueConstraint(name: 'unique', columns: ['slug'])]
#[ORM\Entity(repositoryClass: ProgramRepository::class)]
#[ORM\HasLifecycleCallbacks]
class Program
{
#[ORM\Column(name: 'id', type: 'integer')]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
private int|string|null $id = null;
#[ORM\Column(name: 'name', type: 'string', length: 255, nullable: true)]
private ?string $name = null;
#[ORM\Column(name: 'slug', type: 'string', length: 255, nullable: true)]
private ?string $slug = null;
#[ORM\Column(name: 'status', type: 'string', length: 64, nullable: true)]
private ?string $status = null;
#[ORM\Column(name: 'lang', type: 'string', length: 4, nullable: true)]
private ?string $lang = null;
#[ORM\Column(name: 'bgImageUrl', type: 'string', length: 255, nullable: true)]
private ?string $bgImageUrl = null;
#[ORM\Column(name: 'mailDesignTemplate', type: 'string', length: 255)]
private ?string $mailDesignTemplate = null;
#[ORM\Column(name: 'senderMail', type: 'string', length: 255, nullable: true)]
private ?string $senderMail = null;
#[ORM\Column(name: 'fromName', type: 'string', length: 255, nullable: true)]
private ?string $fromName = null;
#[ORM\Column(name: 'recipientMonitoringMail', type: 'string', length: 255, nullable: true)]
private ?string $recipientMonitoringMail = null;
#[ORM\Column(name: 'confirmationMailSubject', type: 'string', length: 255, nullable: true)]
private ?string $confirmationMailSubject = null;
#[ORM\Column(name: 'confirmationMailContent', type: 'text', nullable: true)]
private ?string $confirmationMailContent = null;
#[ORM\Column(name: 'email', type: 'string', length: 255, nullable: true)]
private ?string $email = null;
#[ORM\Column(name: 'landingPageContent', type: 'text', nullable: true)]
private ?string $landingPageContent = null;
#[ORM\Column(name: 'template', type: 'string', length: 255, nullable: true)]
private ?string $template = null;
#[ORM\Column(name: 'homepage', type: 'string', length: 255, nullable: true)]
private ?string $homepage = null;
#[ORM\Column(name: 'visibility', type: 'string', length: 64, nullable: true)]
private ?string $visibility = null;
#[ORM\Column(name: 'access', type: 'string', length: 64, nullable: true)]
private ?string $access = null;
#[ORM\Column(name: 'hasEvent', type: 'boolean', nullable: true)]
private bool|int|null $hasEvent = null;
#[ORM\Column(name: 'isNetworking', type: 'boolean', nullable: true)]
private bool|int|null $isNetworking = null;
#[ORM\Column(name: 'networkingRounds', type: 'smallint', nullable: true)]
private int|string|null $networkingRounds = null;
#[ORM\Column(name: 'isMultipleApplicationsPerMember', type: 'boolean', nullable: true)]
private bool|int|null $isMultipleApplicationsPerMember = null;
#[ORM\Column(name: 'isMultipleApplicationsPerTeam', type: 'boolean', nullable: true)]
private bool|int|null $isMultipleApplicationsPerTeam = null;
#[ORM\Column(name: 'eventId', type: 'integer', nullable: true)]
private int|string|null $eventId = null;
#[ORM\Column(name: 'zoomLink', type: 'string', length: 255, nullable: true)]
private ?string $zoomLink = null;
#[ORM\Column(name: 'typeformLink', type: 'string', length: 255, nullable: true)]
private ?string $typeformLink = null;
#[ORM\Column(name: 'mailTemplate', type: 'text', nullable: true)]
public ?string $mailTemplate = null;
#[ORM\Column(name: 'mailSubject', type: 'string', length: 255, nullable: true)]
public ?string $mailSubject = null;
#[ORM\Column(name: 'reminderMailTemplateId', type: 'integer', nullable: true)]
private int|string|null $reminderMailTemplateId = null;
#[ORM\Column(name: 'reminderSenderEmail', type: 'string', length: 255, nullable: true)]
private ?string $reminderSenderEmail = null;
#[ORM\Column(name: 'phrasesDe', type: 'text', nullable: true)]
private ?string $phrasesDe = null;
#[ORM\Column(name: 'phrasesEn', type: 'text', nullable: true)]
private ?string $phrasesEn = null;
#[ORM\Column(name: 'settings', type: 'text', nullable: true)]
private ?string $settings = null;
#[ORM\Column(name: 'createdAt', type: 'datetime', nullable: true)]
private ?DateTime $createdAt = null;
#[ORM\Column(name: 'lastModified', type: 'datetime', nullable: true)]
private ?DateTime $lastModified = null;
#[ORM\Column(name: 'lastChangeUser', type: 'string', length: 255, nullable: true)]
private ?string $lastChangeUser = null;
#[ORM\OneToMany(targetEntity: Batch::class, mappedBy: 'program', cascade: ['persist', 'remove'])]
private Collection $batches;
public function __construct()
{
$this->batches = new ArrayCollection();
}
/**
* Get id
*/
public function getId(): int|string|null
{
return $this->id;
}
/**
* Set name
*/
public function setName($name): Program
{
$this->name = $name !== null ? (string) $name : null;
return $this;
}
/**
* Get name
*/
public function getName(): ?string
{
return $this->name;
}
/**
* Set slug
*/
public function setSlug($slug): Program
{
$this->slug = $slug !== null ? (string) $slug : null;
return $this;
}
/**
* Get slug
*/
public function getSlug(): ?string
{
return $this->slug;
}
public function getStatus(): ?string
{
return $this->status;
}
public function setStatus($status): void
{
$this->status = $status !== null ? (string) $status : null;
}
public function getLang(): ?string
{
return $this->lang;
}
public function setLang($lang): void
{
$this->lang = $lang !== null ? (string) $lang : null;
}
public function getBgImageUrl(): ?string
{
return $this->bgImageUrl;
}
public function setBgImageUrl($bgImageUrl): void
{
$this->bgImageUrl = $bgImageUrl !== null ? (string) $bgImageUrl : null;
}
public function getMailDesignTemplate(): ?string
{
return $this->mailDesignTemplate;
}
public function setMailDesignTemplate($mailDesignTemplate): void
{
$this->mailDesignTemplate = $mailDesignTemplate !== null ? (string) $mailDesignTemplate : null;
}
public function getSenderMail(): ?string
{
return $this->senderMail;
}
public function setSenderMail($senderMail): void
{
$this->senderMail = $senderMail !== null ? (string) $senderMail : null;
}
public function getFromName(): ?string
{
return $this->fromName;
}
public function setFromName($fromName): void
{
$this->fromName = $fromName !== null ? (string) $fromName : null;
}
public function getRecipientMonitoringMail(): ?string
{
return $this->recipientMonitoringMail;
}
public function setRecipientMonitoringMail($recipientMonitoringMail): void
{
$this->recipientMonitoringMail = $recipientMonitoringMail !== null ? (string) $recipientMonitoringMail : null;
}
public function getConfirmationMailSubject(): ?string
{
return $this->confirmationMailSubject;
}
public function setConfirmationMailSubject($confirmationMailSubject): void
{
$this->confirmationMailSubject = $confirmationMailSubject !== null ? (string) $confirmationMailSubject : null;
}
public function getConfirmationMailContent(): ?string
{
return $this->confirmationMailContent;
}
public function setConfirmationMailContent($confirmationMailContent): void
{
$this->confirmationMailContent = $confirmationMailContent !== null ? (string) $confirmationMailContent : null;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail($email): void
{
$this->email = $email !== null ? (string) $email : null;
}
public function getLandingPageContent(): ?string
{
return $this->landingPageContent;
}
public function setLandingPageContent($landingPageContent): void
{
$this->landingPageContent = $landingPageContent !== null ? (string) $landingPageContent : null;
}
public function getTemplate(): ?string
{
return $this->template;
}
public function setTemplate($template): void
{
$this->template = $template !== null ? (string) $template : null;
}
public function getHomepage(): ?string
{
return $this->homepage;
}
public function setHomepage($homepage): void
{
$this->homepage = $homepage !== null ? (string) $homepage : null;
}
public function getVisibility(): ?string
{
return $this->visibility;
}
public function setVisibility($visibility): void
{
$this->visibility = $visibility !== null ? (string) $visibility : null;
}
public function getAccess(): ?string
{
return $this->access;
}
public function setAccess($access): void
{
$this->access = $access !== null ? (string) $access : null;
}
public function hasEvent(): bool|int|null
{
return $this->hasEvent;
}
public function getHasEvent(): bool|int|null
{
return $this->hasEvent;
}
public function setHasEvent($hasEvent): void
{
$this->hasEvent = $hasEvent !== null ? (bool) $hasEvent : null;
}
public function isNetworking(): bool|int|null
{
return $this->isNetworking;
}
public function getIsNetworking(): bool|int|null
{
return $this->isNetworking;
}
public function setIsNetworking($isNetworking): void
{
$this->isNetworking = $isNetworking !== null ? (bool) $isNetworking : null;
}
public function getNetworkingRounds(): int|string|null
{
return $this->networkingRounds;
}
public function setNetworkingRounds($networkingRounds): void
{
$this->networkingRounds = $networkingRounds !== null ? (string) $networkingRounds : null;
}
public function isMultipleApplicationsPerMember(): bool|int|null
{
return $this->isMultipleApplicationsPerMember;
}
public function getIsMultipleApplicationsPerMember(): bool|int|null
{
return $this->isMultipleApplicationsPerMember;
}
public function setIsMultipleApplicationsPerMember($isMultipleApplicationsPerMember): void
{
$this->isMultipleApplicationsPerMember = $isMultipleApplicationsPerMember !== null ? (bool) $isMultipleApplicationsPerMember : null;
}
public function isMultipleApplicationsPerTeam(): bool|int|null
{
return $this->isMultipleApplicationsPerTeam;
}
public function getIsMultipleApplicationsPerTeam(): bool|int|null
{
return $this->isMultipleApplicationsPerTeam;
}
public function setIsMultipleApplicationsPerTeam($isMultipleApplicationsPerTeam): void
{
$this->isMultipleApplicationsPerTeam = $isMultipleApplicationsPerTeam !== null ? (bool) $isMultipleApplicationsPerTeam : null;
}
public function getEventId(): int|string|null
{
return $this->eventId;
}
public function setEventId($eventId): void
{
$this->eventId = $eventId !== null ? (string) $eventId : null;
}
public function getZoomLink(): ?string
{
return $this->zoomLink;
}
public function setZoomLink($zoomLink): void
{
$this->zoomLink = $zoomLink !== null ? (string) $zoomLink : null;
}
public function getTypeformLink(): ?string
{
return $this->typeformLink;
}
public function setTypeformLink($typeformLink): void
{
$this->typeformLink = $typeformLink !== null ? (string) $typeformLink : null;
}
public function getMailTemplate(): ?string
{
return $this->mailTemplate;
}
public function setMailTemplate($mailTemplate): void
{
$this->mailTemplate = $mailTemplate;
}
public function getReminderMailTemplateId(): int|string|null
{
return $this->reminderMailTemplateId;
}
public function setReminderMailTemplateId($reminderMailTemplateId): void
{
$this->reminderMailTemplateId = $reminderMailTemplateId !== null ? (string) $reminderMailTemplateId : null;
}
public function getReminderSenderEmail(): ?string
{
return $this->reminderSenderEmail;
}
public function setReminderSenderEmail($reminderSenderEmail): void
{
$this->reminderSenderEmail = $reminderSenderEmail !== null ? (string) $reminderSenderEmail : null;
}
public function getMailSubject(): ?string
{
return $this->mailSubject;
}
public function setMailSubject($mailSubject): void
{
$this->mailSubject = $mailSubject;
}
public function getPhrasesDe(): ?string
{
return $this->phrasesDe;
}
public function setPhrasesDe($phrasesDe): void
{
$this->phrasesDe = $phrasesDe !== null ? (string) $phrasesDe : null;
}
public function getPhrasesEn(): ?string
{
return $this->phrasesEn;
}
public function setPhrasesEn($phrasesEn): void
{
$this->phrasesEn = $phrasesEn !== null ? (string) $phrasesEn : null;
}
public function getSettings(): ?string
{
return $this->settings;
}
public function setSettings($settings): void
{
$this->settings = $settings !== null ? (string) $settings : null;
}
/**
* Set createdAt
*/
public function setCreatedAt($createdAt): Program
{
$this->createdAt = $createdAt;
return $this;
}
/**
* Get createdAt
*/
public function getCreatedAt(): ?DateTime
{
return $this->createdAt;
}
/**
* Set lastModified
*/
public function setLastModified($lastModified): Program
{
$this->lastModified = $lastModified;
return $this;
}
/**
* Get lastModified
*/
public function getLastModified(): ?DateTime
{
return $this->lastModified;
}
/**
* Set lastChangeUser
*/
public function setLastChangeUser($lastChangeUser): Program
{
$this->lastChangeUser = $lastChangeUser !== null ? (string) $lastChangeUser : null;
return $this;
}
/**
* Get lastChangeUser
*/
public function getLastChangeUser(): ?string
{
return $this->lastChangeUser;
}
public function getBatches(): Collection
{
return $this->batches;
}
public function setBatches($batches): void
{
$this->batches = $batches;
}
#[ORM\PrePersist]
public function onAdd(): void
{
$this->setCreatedAt(new DateTime('now'));
}
#[ORM\PrePersist]
#[ORM\PreUpdate]
public function onUpdate(): void
{
$this->setLastModified(new DateTime('now'));
}
}