refactor: slim the hotel and country base-data models

This commit is contained in:
fromme committed 2026-09-29 13:06:20 +02:00
1 parent aa66c50979
commit db529d2dc9
5 files changed
+3 -91

No files matched your search

-13
View File
@@ -4,23 +4,10 @@ namespace App\BusProNet\Model;
class Country
{
private ?int $id = null;
private ?string $name = null;
private ?string $token = null;
private ?string $nationality = null;
public function getId(): ?int
{
return $this->id;
}
public function setId(?int $id): static
{
$this->id = $id;
return $this;
}
public function getName(): ?string
{
return $this->name;
-65
View File
@@ -4,14 +4,9 @@ namespace App\BusProNet\Model;
class Hotel
{
private ?int $id = null;
private ?int $busProId = null;
private ?string $code = null;
private ?string $name = null;
private ?string $city = null;
private ?string $street = null;
private ?string $phone = null;
private ?string $type = null;
/**
* The raw BusProNet abbreviation, which is not a standard: the same country turns
* up as D, DEU, A, AT or AUT. It joins against the country base data by token.
@@ -25,18 +20,6 @@ class Hotel
private ?string $countryCode = null;
private ?string $costUnit = null;
public function getId(): ?int
{
return $this->id;
}
public function setId(?int $id): static
{
$this->id = $id;
return $this;
}
public function getBusProId(): ?int
{
return $this->busProId;
@@ -73,54 +56,6 @@ class Hotel
return $this;
}
public function getCity(): ?string
{
return $this->city;
}
public function setCity(?string $city): static
{
$this->city = $city;
return $this;
}
public function getStreet(): ?string
{
return $this->street;
}
public function setStreet(?string $street): static
{
$this->street = $street;
return $this;
}
public function getPhone(): ?string
{
return $this->phone;
}
public function setPhone(?string $phone): static
{
$this->phone = $phone;
return $this;
}
public function getType(): ?string
{
return $this->type;
}
public function setType(?string $type): static
{
$this->type = $type;
return $this;
}
public function getCountry(): ?string
{
return $this->country;
-5
View File
@@ -34,13 +34,9 @@ class ResponseMapper
$hotel = new Hotel();
$hotel
->setId($busProId)
->setBusProId($busProId)
->setCode($this->readString($row, 'code'))
->setName($this->readString($row, 'name'))
->setCity($this->readString($row, 'city'))
->setStreet($this->readString($row, 'street'))
->setPhone($this->readString($row, 'phone'))
->setCountry($this->readString($row, 'country'))
->setCountryCode($this->readCountryCode($row))
->setCostUnit($this->readString($row, 'costUnit'))
@@ -97,7 +93,6 @@ class ResponseMapper
$country = new Country();
$country
->setId(isset($row['id']) ? (int) $row['id'] : null)
->setName($this->readString($row, 'name'))
->setToken($token)
->setNationality($this->readString($row, 'nationality'))
@@ -23,8 +23,8 @@ class HotelDataProviderTest extends TestCase
$this->assertEquals([163959, 11223], array_keys($hotels));
$this->assertEquals('Sportclub Jenatsch', $hotels[163959]->getName());
// MyE&P reports the BusProNet idbuspro as the id, so both properties carry it
$this->assertEquals(163959, $hotels[163959]->getId());
// MyE&P reports the BusProNet idbuspro as its id, and busProId is the only property
// that holds it now - the model used to carry the same number twice
$this->assertEquals(163959, $hotels[163959]->getBusProId());
$this->assertEquals('4711', $hotels[163959]->getCostUnit());
$this->assertEquals('CH', $hotels[163959]->getCountry());
+1 -6
View File
@@ -41,9 +41,6 @@ class ResponseMapperTest extends TestCase
$hotel = $hotels[163959];
$this->assertEquals('Lenzerheide', $hotel->getCity());
$this->assertEquals('Voa Principala 1', $hotel->getStreet());
$this->assertEquals('+41 81 000000', $hotel->getPhone());
$this->assertEquals('4711', $hotel->getCostUnit());
}
@@ -82,8 +79,7 @@ class ResponseMapperTest extends TestCase
$this->assertNull($hotels[1]->getCountryCode());
$this->assertNull($hotels[1]->getCostUnit());
$this->assertNull($hotels[1]->getType());
$this->assertNull($hotels[1]->getPhone());
$this->assertNull($hotels[1]->getName());
}
public function testHotelsWithoutAnIdAreSkipped(): void
@@ -135,7 +131,6 @@ class ResponseMapperTest extends TestCase
$this->assertEquals(['CH'], array_keys($countries));
$this->assertInstanceOf(Country::class, $countries['CH']);
$this->assertEquals(1, $countries['CH']->getId());
$this->assertEquals('Schweiz', $countries['CH']->getName());
$this->assertEquals('CH', $countries['CH']->getToken());
$this->assertEquals('schweizerisch', $countries['CH']->getNationality());