$submittedData The submitted participant form data * @param BookingDtoInterface $bookingDto The booking DTO to update (create or edit) * @param int $participantIndex The participant index being processed */ public function processField(array $submittedData, BookingDtoInterface $bookingDto, int $participantIndex): void; /** * Determines if this handler should process the field based on submitted participant data. */ public function shouldProcess(array $submittedData, int $participantIndex): bool; /** * Returns field state modifications that should be applied after processing. * * This method allows handlers to dynamically modify the state of form fields * based on the processed data. It's called after processField() and can be used * to enable/disable/hide fields based on the handler's processing results. * * @param array $submittedData The submitted participant form data * @param BookingDtoInterface $bookingDto The booking DTO (potentially modified by processing) * @param int $participantIndex The participant index being processed * * @return array> Field state modifications indexed by field name */ public function getFieldStateModifications(array $submittedData, BookingDtoInterface $bookingDto, int $participantIndex): array; /** * Returns field names whose state is affected by this handler's processing. * * This method declares which form fields have their state modified by this handler. * It's used for dependency tracking and determining when field states need to be * recalculated during form processing. * * @return string[] Array of field names that this handler may modify the state of */ public function getAffectedFieldNames(): array; }