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, ])); } }