wip: dynamic services fields
This commit is contained in:
1 parent
369d660e24
commit
60b655a195
21 files changed
+634
-39
No files matched your search
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Form\Service;
|
||||
|
||||
use App\Form\Model\BookingDtoInterface;
|
||||
use App\Form\Service\Abstract\AbstractParticipantFieldHandler;
|
||||
|
||||
/**
|
||||
* Handles processing of the remarksRoom field for booking participants.
|
||||
*
|
||||
* This handler manages room-specific remarks for participants in the booking
|
||||
* creation process. It processes the remarksRoom field from form submissions
|
||||
* and updates the participant DTO with the provided remarks.
|
||||
*
|
||||
* Key responsibilities:
|
||||
* - Processes room remarks text input
|
||||
* - Handles empty text normalization (empty string → null)
|
||||
* - Updates participant DTO with normalized remarks
|
||||
*
|
||||
* Dependencies: None (this is a simple text field)
|
||||
*/
|
||||
class ParticipantRemarksRoomFieldHandler extends AbstractParticipantFieldHandler
|
||||
{
|
||||
/**
|
||||
* Returns the form field name this handler processes.
|
||||
*
|
||||
* @return string The field name 'remarksRoom'
|
||||
*/
|
||||
public function getFieldName(): string
|
||||
{
|
||||
return 'remarksRoom';
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes the remarksRoom field for a specific participant.
|
||||
*
|
||||
* This method extracts room remarks from submitted form data and
|
||||
* updates the corresponding participant in the booking DTO. It handles
|
||||
* the normalization of empty strings to null values.
|
||||
*
|
||||
* @param array<string, mixed> $submittedData The submitted participant form data
|
||||
* @param BookingDtoInterface $bookingDto The booking DTO to update (create or edit)
|
||||
* @param int $participantIndex The index of the participant being processed
|
||||
*/
|
||||
public function processField(array $submittedData, BookingDtoInterface $bookingDto, int $participantIndex): void
|
||||
{
|
||||
// Safely get the participant object, returning early if not found
|
||||
$participant = $this->getParticipant($bookingDto, $participantIndex);
|
||||
if (null === $participant) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Extract the room remarks from form data
|
||||
$remarksRoom = $this->getFieldValue($submittedData, $this->getFieldName());
|
||||
|
||||
// Normalize empty string to null and update participant
|
||||
$participant->remarksRoom = $this->normalizeEmptyValue($remarksRoom);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user