wip: refactor
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Form\Model;
|
||||
|
||||
use App\BusProNet\Model\Travel;
|
||||
|
||||
/**
|
||||
* Interface for unified access to booking data across create and edit workflows.
|
||||
*
|
||||
* This interface provides a consistent API for accessing common booking data
|
||||
* regardless of whether the data comes from a creation workflow (BookingCreateDto)
|
||||
* or an edit workflow (BookingEditDto). This enables code reuse and simplifies
|
||||
* form field handlers and state management systems.
|
||||
*/
|
||||
interface BookingDtoInterface
|
||||
{
|
||||
/**
|
||||
* Gets all participants in the booking.
|
||||
*
|
||||
* @return array<int, ParticipantDto> Array of participant DTOs indexed by participant index
|
||||
*/
|
||||
public function getParticipants(): array;
|
||||
|
||||
/**
|
||||
* Gets the travel data for the booking.
|
||||
*
|
||||
* @return Travel The travel data containing services, hotels, and other booking options
|
||||
*/
|
||||
public function getTravel(): Travel;
|
||||
|
||||
/**
|
||||
* Checks if a participant exists at the given index.
|
||||
*
|
||||
* @param int $index The participant index to check
|
||||
*
|
||||
* @return bool True if a participant exists at the given index
|
||||
*/
|
||||
public function hasParticipant(int $index): bool;
|
||||
|
||||
/**
|
||||
* Gets a participant by index.
|
||||
*
|
||||
* @param int $index The participant index
|
||||
*
|
||||
* @return ParticipantDto|null The participant DTO or null if not found
|
||||
*/
|
||||
public function getParticipant(int $index): ?ParticipantDto;
|
||||
}
|
||||
Reference in New Issue
Block a user