feat: additional hotel properties

addresses #86965w970
This commit is contained in:
Björn Fromme
2026-07-15 10:52:08 +02:00
parent 9c5a6747bc
commit 2f58b02928
4 changed files with 268 additions and 2 deletions
@@ -285,6 +285,56 @@ class Hotel extends AbstractEntity implements TeaserInterface
*/
protected $mainSeasonTo;
/**
* @var int
*/
protected $bedsCount = 0;
/**
* @var int
*/
protected $parkingCount = 0;
/**
* @var string
*/
protected $altitude = '';
/**
* @var string
*/
protected $shower = '';
/**
* @var bool
*/
protected $partyroom = false;
/**
* @var bool
*/
protected $gamesroom = false;
/**
* @var bool
*/
protected $sauna = false;
/**
* @var bool
*/
protected $wifi = false;
/**
* @var string
*/
protected $distanceBus = '';
/**
* @var string
*/
protected $distanceLift = '';
public function __construct()
{
$this->initStorageObjects();
@@ -1103,4 +1153,104 @@ class Hotel extends AbstractEntity implements TeaserInterface
{
$this->mainSeasonTo = $mainSeasonTo;
}
public function getBedsCount()
{
return $this->bedsCount;
}
public function setBedsCount($bedsCount)
{
$this->bedsCount = $bedsCount;
}
public function getParkingCount()
{
return $this->parkingCount;
}
public function setParkingCount($parkingCount)
{
$this->parkingCount = $parkingCount;
}
public function getAltitude()
{
return $this->altitude;
}
public function setAltitude($altitude)
{
$this->altitude = $altitude;
}
public function getShower()
{
return $this->shower;
}
public function setShower($shower)
{
$this->shower = $shower;
}
public function isPartyroom()
{
return $this->partyroom;
}
public function setPartyroom($partyroom)
{
$this->partyroom = $partyroom;
}
public function isGamesroom()
{
return $this->gamesroom;
}
public function setGamesroom($gamesroom)
{
$this->gamesroom = $gamesroom;
}
public function isSauna()
{
return $this->sauna;
}
public function setSauna($sauna)
{
$this->sauna = $sauna;
}
public function isWifi()
{
return $this->wifi;
}
public function setWifi($wifi)
{
$this->wifi = $wifi;
}
public function getDistanceBus()
{
return $this->distanceBus;
}
public function setDistanceBus($distanceBus)
{
$this->distanceBus = $distanceBus;
}
public function getDistanceLift()
{
return $this->distanceLift;
}
public function setDistanceLift($distanceLift)
{
$this->distanceLift = $distanceLift;
}
}
@@ -149,6 +149,16 @@ class ProductApiMiddleware implements MiddlewareInterface
'hotel.room_types',
'hotel.additional_information',
'hotel.address',
'hotel.beds_count',
'hotel.parking_count',
'hotel.altitude',
'hotel.shower',
'hotel.partyroom',
'hotel.gamesroom',
'hotel.sauna',
'hotel.wifi',
'hotel.distance_bus',
'hotel.distance_lift',
)
->from('tx_epproducts_domain_model_hotel', 'hotel')
->leftJoin('hotel', 'tx_epproducts_domain_model_matchcode', 'alias', 'hotel.uid = alias.entity AND alias.entity_type="hotel"')
@@ -179,6 +189,18 @@ class ProductApiMiddleware implements MiddlewareInterface
'additionalInformation' => $hotel['additional_information'],
'address' => $hotel['address'],
'images' => $images,
'icons' => [
'bedsCount' => (int) $hotel['beds_count'],
'parkingCount' => (int) $hotel['parking_count'],
'altitude' => $hotel['altitude'],
'shower' => $hotel['shower'],
'partyroom' => (bool) $hotel['partyroom'],
'gamesroom' => (bool) $hotel['gamesroom'],
'sauna' => (bool) $hotel['sauna'],
'wifi' => (bool) $hotel['wifi'],
'distanceBus' => $hotel['distance_bus'],
'distanceLift' => $hotel['distance_lift'],
],
];
}
}
@@ -31,7 +31,8 @@ return [
--div--;Verknüpfungen, facts, teamer, additional_codes, mappings,
--div--;Bilder/Dateien, teaser_images, header_images, images, reseller_images,
--div--;Gruppenhaus Preise, --palette--;;season,--palette--;;others, groups_price_configs,
groups_price_boards, groups_price_options',
groups_price_boards, groups_price_options,
--div--;Gruppenhaus Icons, --palette--;;icons',
],
],
'palettes' => [
@@ -42,7 +43,8 @@ return [
'name' => ['showitem' => 'name,short_name,--linebreak--,header_title,header_subtitle,--linebreak--,headline'],
'categories' => ['showitem' => 'type,category'],
'season' => ['showitem' => 'main_season_from, main_season_to'],
'others' => ['showitem' => 'season,groups_price_tax_label, groups_price_adolescents_age']
'others' => ['showitem' => 'season,groups_price_tax_label, groups_price_adolescents_age'],
'icons' => ['showitem' => 'beds_count,parking_count,altitude,shower,partyroom,gamesroom,sauna,wifi,distance_bus,distance_lift'],
],
'columns' => [
@@ -758,5 +760,87 @@ return [
'renderType' => 'inputDateTime',
],
],
'beds_count' => [
'exclude' => 0,
'label' => 'Anzahl Betten',
'config' => [
'type' => 'input',
'size' => 50,
'eval' => 'int',
],
],
'parking_count' => [
'exclude' => 0,
'label' => 'Anzahl Parkplätze',
'config' => [
'type' => 'input',
'size' => 50,
'eval' => 'int',
],
],
'altitude' => [
'exclude' => 0,
'label' => 'Höhe',
'config' => [
'type' => 'input',
'size' => 50,
'eval' => 'trim',
],
],
'shower' => [
'exclude' => 0,
'label' => 'Dusche',
'config' => [
'type' => 'input',
'size' => 50,
'eval' => 'trim',
],
],
'partyroom' => [
'exclude' => 0,
'label' => 'Partyraum',
'config' => [
'type' => 'check',
],
],
'gamesroom' => [
'exclude' => 0,
'label' => 'Spieleraum',
'config' => [
'type' => 'check',
],
],
'sauna' => [
'exclude' => 0,
'label' => 'Sauna',
'config' => [
'type' => 'check',
],
],
'wifi' => [
'exclude' => 0,
'label' => 'WiFi',
'config' => [
'type' => 'check',
],
],
'distance_bus' => [
'exclude' => 0,
'label' => 'Entfernung zum Bus',
'config' => [
'type' => 'input',
'size' => 50,
'eval' => 'trim',
],
],
'distance_lift' => [
'exclude' => 0,
'label' => 'Entfernung zum Lift',
'config' => [
'type' => 'input',
'size' => 50,
'eval' => 'trim',
],
],
],
];
@@ -260,6 +260,16 @@ CREATE TABLE tx_epproducts_domain_model_hotel
groups_price_tax_label varchar(255) DEFAULT '' NOT NULL,
main_season_from date DEFAULT NULL,
main_season_to date DEFAULT NULL,
beds_count int(11) DEFAULT '0' NOT NULL,
parking_count int(11) DEFAULT '0' NOT NULL,
altitude varchar(255) DEFAULT '' NOT NULL,
shower varchar(255) DEFAULT '' NOT NULL,
partyroom tinyint(4) unsigned DEFAULT '0' NOT NULL,
gamesroom tinyint(4) unsigned DEFAULT '0' NOT NULL,
sauna tinyint(4) unsigned DEFAULT '0' NOT NULL,
wifi tinyint(4) unsigned DEFAULT '0' NOT NULL,
distance_bus varchar(255) DEFAULT '' NOT NULL,
distance_lift varchar(255) DEFAULT '' NOT NULL,
tstamp int(11) unsigned DEFAULT '0' NOT NULL,
crdate int(11) unsigned DEFAULT '0' NOT NULL,