mirror of
https://github.com/FriendsOfTYPO3/tea.git
synced 2024-11-14 16:36:12 +01:00
eeda862e77
The `Product` namespace segment in the domain model namespace `TTN\Tea\Domain\Model` currently serves no purpose and only adds confusion. So let's simplify the extension structure accordingly. (I intended to use this to demonstrate DDD contexts, but never built enough models in the Tea extension for this to actually make sense.) Fixes #1008
93 lines
2 KiB
PHP
93 lines
2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace TTN\Tea\Domain\Model;
|
|
|
|
use TYPO3\CMS\Extbase\Annotation as Extbase;
|
|
use TYPO3\CMS\Extbase\Domain\Model\FileReference;
|
|
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
|
|
use TYPO3\CMS\Extbase\Persistence\Generic\LazyLoadingProxy;
|
|
|
|
/**
|
|
* This class represents a tea (flavor), e.g., "Earl Grey".
|
|
*/
|
|
class Tea extends AbstractEntity
|
|
{
|
|
/**
|
|
* @Extbase\Validate("StringLength", options={"maximum": 255})
|
|
* @Extbase\Validate("NotEmpty")
|
|
*/
|
|
protected string $title = '';
|
|
|
|
/**
|
|
* @Extbase\Validate("StringLength", options={"maximum": 2000})
|
|
*/
|
|
protected string $description = '';
|
|
|
|
/**
|
|
* @var FileReference|null
|
|
* @phpstan-var FileReference|LazyLoadingProxy|null
|
|
* @Extbase\ORM\Lazy
|
|
*/
|
|
protected $image;
|
|
|
|
// Note: We cannot use `@var` for the more specific type annotation here as this confuses the Extbase type mapper.
|
|
|
|
/**
|
|
* @phpstan-var int<0, max>
|
|
*/
|
|
protected int $ownerUid = 0;
|
|
|
|
public function getTitle(): string
|
|
{
|
|
return $this->title;
|
|
}
|
|
|
|
public function setTitle(string $title): void
|
|
{
|
|
$this->title = $title;
|
|
}
|
|
|
|
public function getDescription(): string
|
|
{
|
|
return $this->description;
|
|
}
|
|
|
|
public function setDescription(string $description): void
|
|
{
|
|
$this->description = $description;
|
|
}
|
|
|
|
public function getImage(): ?FileReference
|
|
{
|
|
if ($this->image instanceof LazyLoadingProxy) {
|
|
/** @var FileReference $image */
|
|
$image = $this->image->_loadRealInstance();
|
|
$this->image = $image;
|
|
}
|
|
|
|
return $this->image;
|
|
}
|
|
|
|
public function setImage(FileReference $image): void
|
|
{
|
|
$this->image = $image;
|
|
}
|
|
|
|
/**
|
|
* @return int<0, max>
|
|
*/
|
|
public function getOwnerUid(): int
|
|
{
|
|
return $this->ownerUid;
|
|
}
|
|
|
|
/**
|
|
* @param int<0, max> $ownerUid
|
|
*/
|
|
public function setOwnerUid(int $ownerUid): void
|
|
{
|
|
$this->ownerUid = $ownerUid;
|
|
}
|
|
}
|