wip: insurance booking phase 4
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Form\Model;
|
||||
|
||||
use App\BusProNet\Model\Insurance;
|
||||
use App\BusProNet\Model\PersonalData;
|
||||
use App\BusProNet\Model\Pickup;
|
||||
use App\BusProNet\Model\Service;
|
||||
@@ -70,6 +71,9 @@ class ParticipantDto
|
||||
// License plate for participants with parking (optional, visible only when parking is selected)
|
||||
public ?string $licensePlate = null;
|
||||
|
||||
// Selected insurance for this participant (individual insurance selection per participant)
|
||||
public ?Insurance $insurance = null;
|
||||
|
||||
public static function fromPersonalData(PersonalData $personalData): static
|
||||
{
|
||||
$instance = new static();
|
||||
@@ -127,4 +131,34 @@ class ParticipantDto
|
||||
|
||||
return $this->dateOfBirth->diff($referenceDate)->y;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the participant has selected an insurance.
|
||||
*
|
||||
* @return bool True if an insurance is selected
|
||||
*/
|
||||
public function hasInsurance(): bool
|
||||
{
|
||||
return null !== $this->insurance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the insurance label for display purposes.
|
||||
*
|
||||
* @return string|null The insurance label or null if no insurance selected
|
||||
*/
|
||||
public function getInsuranceLabel(): ?string
|
||||
{
|
||||
return $this->insurance?->label;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the insurance price for pricing calculations.
|
||||
*
|
||||
* @return float The insurance price (0.0 if no insurance selected)
|
||||
*/
|
||||
public function getInsurancePrice(): float
|
||||
{
|
||||
return $this->insurance?->price ?? 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user