Restore point before Stufe 3 (central resolver-service refactoring). Includes this session's work: - Success Story (usecase) rebuild: new fields/tabs, UsecaseSerializer, thin List/Show renderers, MM relations, inline content elements. - vitec_columns content block (two-column layout with per-item content) incl. unified header section; special-cased JSON resolution. - Container per-column flex (items[].config align/justify) + gap on parent. - Unified header section across CEs/plugins/containers; header fields in JSON. - ISO-style architecture spec: Documentation/Headless-JSON-Architecture.md. - Cleanup: removed local scratch + verified .bak backups. - Fixes: B-6 (undefined thumbnail variable in Downloadcardcollection image resolver), B-7 (unsatisfiable legacy CType OR branch in Downloadcard/Datasheets). Rollback: git reset --hard snapshot-2026-07-09-pre-stufe3 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
267 lines
5.3 KiB
PHP
267 lines
5.3 KiB
PHP
<?php
|
|
|
|
namespace Evomedien\Vitec\Domain\Model;
|
|
|
|
use TYPO3\CMS\Extbase\Domain\Model\Category;
|
|
use TYPO3\CMS\Extbase\Domain\Model\FileReference;
|
|
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
|
|
use TYPO3\CMS\Extbase\Persistence\ObjectStorage;
|
|
|
|
class Event extends AbstractEntity
|
|
{
|
|
/** @var string */
|
|
protected $title = '';
|
|
|
|
/** @var string */
|
|
protected $slug = '';
|
|
|
|
/** @var string */
|
|
protected $teaser = '';
|
|
|
|
/** @var string */
|
|
protected $description = '';
|
|
|
|
/** @var \DateTime|null */
|
|
protected $eventstart;
|
|
|
|
/** @var \DateTime|null */
|
|
protected $eventend;
|
|
|
|
/** @var string */
|
|
protected $venue = '';
|
|
|
|
/** @var string */
|
|
protected $booth = '';
|
|
|
|
/** @var string */
|
|
protected $city = '';
|
|
|
|
/** @var string */
|
|
protected $country = '';
|
|
|
|
/** @var string */
|
|
protected $attendancemode = 'offline';
|
|
|
|
/** @var string */
|
|
protected $eventstatus = 'scheduled';
|
|
|
|
/** @var string */
|
|
protected $eventurl = '';
|
|
|
|
/** @var string */
|
|
protected $meetinglink = '';
|
|
|
|
/**
|
|
* @var \TYPO3\CMS\Extbase\Domain\Model\FileReference|null
|
|
* @TYPO3\CMS\Extbase\Annotation\ORM\Cascade("remove")
|
|
*/
|
|
protected $image;
|
|
|
|
/** @var bool */
|
|
protected $hideonwebsite = false;
|
|
|
|
/** @var bool */
|
|
protected $hideonapp = false;
|
|
|
|
/**
|
|
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\Category>
|
|
* @TYPO3\CMS\Extbase\Annotation\ORM\Lazy
|
|
*/
|
|
protected $categories;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->categories = new ObjectStorage();
|
|
}
|
|
|
|
public function getTitle(): string
|
|
{
|
|
return $this->title;
|
|
}
|
|
|
|
public function setTitle(string $title): void
|
|
{
|
|
$this->title = $title;
|
|
}
|
|
|
|
public function getSlug(): string
|
|
{
|
|
return $this->slug;
|
|
}
|
|
|
|
public function setSlug(string $slug): void
|
|
{
|
|
$this->slug = $slug;
|
|
}
|
|
|
|
public function getTeaser(): string
|
|
{
|
|
return $this->teaser;
|
|
}
|
|
|
|
public function setTeaser(string $teaser): void
|
|
{
|
|
$this->teaser = $teaser;
|
|
}
|
|
|
|
public function getDescription(): string
|
|
{
|
|
return $this->description;
|
|
}
|
|
|
|
public function setDescription(string $description): void
|
|
{
|
|
$this->description = $description;
|
|
}
|
|
|
|
public function getEventstart(): ?\DateTime
|
|
{
|
|
return $this->eventstart;
|
|
}
|
|
|
|
public function setEventstart(?\DateTime $eventstart): void
|
|
{
|
|
$this->eventstart = $eventstart;
|
|
}
|
|
|
|
public function getEventend(): ?\DateTime
|
|
{
|
|
return $this->eventend;
|
|
}
|
|
|
|
public function setEventend(?\DateTime $eventend): void
|
|
{
|
|
$this->eventend = $eventend;
|
|
}
|
|
|
|
public function getVenue(): string
|
|
{
|
|
return $this->venue;
|
|
}
|
|
|
|
public function setVenue(string $venue): void
|
|
{
|
|
$this->venue = $venue;
|
|
}
|
|
|
|
public function getBooth(): string
|
|
{
|
|
return $this->booth;
|
|
}
|
|
|
|
public function setBooth(string $booth): void
|
|
{
|
|
$this->booth = $booth;
|
|
}
|
|
|
|
public function getCity(): string
|
|
{
|
|
return $this->city;
|
|
}
|
|
|
|
public function setCity(string $city): void
|
|
{
|
|
$this->city = $city;
|
|
}
|
|
|
|
public function getCountry(): string
|
|
{
|
|
return $this->country;
|
|
}
|
|
|
|
public function setCountry(string $country): void
|
|
{
|
|
$this->country = $country;
|
|
}
|
|
|
|
public function getAttendancemode(): string
|
|
{
|
|
return $this->attendancemode;
|
|
}
|
|
|
|
public function setAttendancemode(string $attendancemode): void
|
|
{
|
|
$this->attendancemode = $attendancemode;
|
|
}
|
|
|
|
public function getEventstatus(): string
|
|
{
|
|
return $this->eventstatus;
|
|
}
|
|
|
|
public function setEventstatus(string $eventstatus): void
|
|
{
|
|
$this->eventstatus = $eventstatus;
|
|
}
|
|
|
|
public function getEventurl(): string
|
|
{
|
|
return $this->eventurl;
|
|
}
|
|
|
|
public function setEventurl(string $eventurl): void
|
|
{
|
|
$this->eventurl = $eventurl;
|
|
}
|
|
|
|
public function getMeetinglink(): string
|
|
{
|
|
return $this->meetinglink;
|
|
}
|
|
|
|
public function setMeetinglink(string $meetinglink): void
|
|
{
|
|
$this->meetinglink = $meetinglink;
|
|
}
|
|
|
|
public function getImage(): ?FileReference
|
|
{
|
|
return $this->image;
|
|
}
|
|
|
|
public function setImage(?FileReference $image): void
|
|
{
|
|
$this->image = $image;
|
|
}
|
|
|
|
public function getHideonwebsite(): bool
|
|
{
|
|
return $this->hideonwebsite;
|
|
}
|
|
|
|
public function setHideonwebsite(bool $hideonwebsite): void
|
|
{
|
|
$this->hideonwebsite = $hideonwebsite;
|
|
}
|
|
|
|
public function getHideonapp(): bool
|
|
{
|
|
return $this->hideonapp;
|
|
}
|
|
|
|
public function setHideonapp(bool $hideonapp): void
|
|
{
|
|
$this->hideonapp = $hideonapp;
|
|
}
|
|
|
|
public function addCategory(Category $category): void
|
|
{
|
|
$this->categories->attach($category);
|
|
}
|
|
|
|
public function removeCategory(Category $categoryToRemove): void
|
|
{
|
|
$this->categories->detach($categoryToRemove);
|
|
}
|
|
|
|
public function getCategories(): ObjectStorage
|
|
{
|
|
return $this->categories;
|
|
}
|
|
|
|
public function setCategories(ObjectStorage $categories): void
|
|
{
|
|
$this->categories = $categories;
|
|
}
|
|
}
|