<?php namespace Wrm\Events\Domain\Model; use TYPO3\CMS\Extbase\DomainObject\AbstractEntity; class Location extends AbstractEntity { /** * @var string */ protected $name = ''; /** * @var string */ protected $street = ''; /** * @var string */ protected $zip = ''; /** * @var string */ protected $city = ''; /** * @var string */ protected $district = ''; /** * @var string */ protected $country = ''; /** * @var string */ protected $phone = ''; /** * @var string */ protected $latitude = ''; /** * @var string */ protected $longitude = ''; /** * @var string */ protected $globalId = ''; /** * @var string */ protected $slug = ''; public function __construct( string $name, string $street, string $zip, string $city, string $district, string $country, string $phone, string $latitude, string $longitude, string $slug, int $languageUid ) { $this->name = $name; $this->street = $street; $this->zip = $zip; $this->city = $city; $this->district = $district; $this->country = $country; $this->phone = $phone; $this->latitude = $latitude; $this->longitude = $longitude; $this->slug = $slug; $this->_languageUid = $languageUid; $this->globalId = $this->generateGlobalId(); } public function getName(): string { return $this->name; } public function getStreet(): string { return $this->street; } public function getZip(): string { return $this->zip; } public function getCity(): string { return $this->city; } public function getDistrict(): string { return $this->district; } public function getCountry(): string { return $this->country; } public function getPhone(): string { return $this->phone; } public function getLatitude(): string { return $this->latitude; } public function getLongitude(): string { return $this->longitude; } public function getGlobalId(): string { return $this->globalId; } /** * Validates the location. * * Holds the original logic that at least one property must be given. */ public function isValid(): bool { return $this->name !== '' || $this->street !== '' || $this->zip !== '' || $this->city !== '' || $this->district !== '' || $this->country !== '' || $this->phone !== '' ; } private function generateGlobalId(): string { return hash('sha256', implode(',', [ $this->name, $this->street, $this->zip, $this->city, $this->district, $this->country, $this->latitude, $this->longitude, ])); } }