contacts_events-8.x-1.x-dev/src/Cron/RecalculateOnBookingWindow.php
src/Cron/RecalculateOnBookingWindow.php
<?php namespace Drupal\contacts_events\Cron; use Drupal\Component\Datetime\Time; use Drupal\contacts_events\PriceCalculator; use Drupal\Core\Entity\EntityFieldManagerInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\State\StateInterface; /** * Cron task for triggering price recalculations on booking window changes. */ class RecalculateOnBookingWindow extends BookingWindowCronBase { /** * The state key for tracking the last run of the price recalculation. */ const STATE_LAST_RUN = 'contacts_events.price_recalculation.last_run'; /** * The price calculator service. * * @var \Drupal\contacts_events\PriceCalculator */ protected $priceCalculator; /** * Construct the price recalculation on booking window cron service. * * @param \Drupal\Core\State\StateInterface $state * The state service. * @param \Drupal\Component\Datetime\Time $time * The time service. * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager * The entity type manager. * @param \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager * The entity field manager. * @param \Drupal\contacts_events\PriceCalculator $price_calculator * The price calculator service. * * @throws \Exception * Thrown if the STATE_LAST_RUN constant is not set. */ public function __construct(StateInterface $state, Time $time, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, PriceCalculator $price_calculator) { parent::__construct($state, $time, $entity_type_manager, $entity_field_manager); $this->priceCalculator = $price_calculator; } /** * {@inheritdoc} */ protected function runActionsForEvents($event_ids, $order_item_types): void { $this->priceCalculator->enqueueJobs($event_ids, $order_item_types); } }