Files
bm/public_html/app/Library/FormatSeatWithNumbering.php
2025-09-24 13:26:28 +02:00

98 lines
2.1 KiB
PHP

<?php
namespace App\Library;
class FormatSeatWithNumbering
{
private $x, $y;
public function __construct($x, $y)
{
$this->x = $x;
$this->y = $y;
$this->handleEmptyAisles();
$this->handleShiftLeft();
}
private function handleEmptyAisles()
{
if($this->isSeatOnRightSideFloor()){
$this->decreaseY();
}
if ($this->isSeatInHorizontalCenter()) {
$this->decreaseX();
} else if ($this->isSeatInEmpore()) {
$this->setAsEmporeSeat();
}
}
private function handleShiftLeft(){
if($this->x == 9){
$this->y -=2;
}else if($this->x == 10){
$this->y -=4;
}else if($this->x == 11){
$this->y -= 6;
}else if($this->x == 12){
$this->y -= 8;
}else if($this->x == 13){
$this->y -= 13;
}else if($this->x == 'E1'){
$this->y-=4;
}else if($this->x == 'E2'){
$this->y-=3;
}else if($this->x == 'E3'){
$this->y-=6;
}else if($this->x == 'E4'){
$this->y-=10;
}else if($this->x =='E5'){
$this->y-=14;
}else if($this->x =='E6'){
$this->y-=18;
}
}
private function isSeatInHorizontalCenter()
{
return $this->x < 16 && $this->x > 7;
}
private function decreaseX()
{
$this->x--;
}
private function isSeatOnRightSideFloor()
{
return $this->y > 13 && $this->x < 16;
}
private function decreaseY()
{
$this->y--;
}
private function isSeatInEmpore()
{
return $this->x >= 16;
}
private function setAsEmporeSeat()
{
$this->x = $this->x - 17;
$this->x = 'E' . $this->x;
if($this->y >= 19){
$this->y -= 2;
}
}
public function getText(){
if(substr($this->x,0,1) === "E") {
return "Empore Reihe " . substr($this->x, 1) . ", Platz " . $this->y;
}else{
return "Erdgeschoss Reihe ".$this->x.", Platz ".$this->y;
}
}
}