contacts_events-8.x-1.x-dev/modules/accommodation/src/BookingAccommodationHelperInterface.php

modules/accommodation/src/BookingAccommodationHelperInterface.php
<?php

namespace Drupal\contacts_events_accommodation;

use Drupal\contacts_events\PriceCalculator;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Field\EntityReferenceFieldItemListInterface;

/**
 * Helper for working with accommodation for a booking.
 */
interface BookingAccommodationHelperInterface {

  /**
   * Construct the booking accommodation helper.
   *
   * @param \Drupal\Core\Field\EntityReferenceFieldItemListInterface $items
   *   The order items field of an order.
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
   *   The entity type manager.
   * @param \Drupal\contacts_events\PriceCalculator $price_calculator
   *   The price calculator service.
   */
  public function __construct(EntityReferenceFieldItemListInterface $items, EntityTypeManagerInterface $entity_type_manager, PriceCalculator $price_calculator);

  /**
   * Get the number of confirmed delegates.
   *
   * @return int
   *   The number of confirmed delegates.
   */
  public function getConfirmedDelegates(): int;

  /**
   * Get the total number of delegates.
   *
   * @return int
   *   The total number of delegates.
   */
  public function getTotalDelegates(): int;

  /**
   * Get the confirmed accommodation of the given type on the booking.
   *
   * @param int $id
   *   The accommodation ID.
   *
   * @return int
   *   The confirmed count.
   */
  public function getConfirmedAccommodation(int $id): int;

  /**
   * Get the total accommodation of the given type on the booking.
   *
   * @param int $id
   *   The accommodation ID.
   *
   * @return int
   *   The total count.
   */
  public function getTotalAccommodation(int $id): int;

  /**
   * Get the accommodation quantities for all accommodation on the booking.
   *
   * @return array
   *   An array of accommodation. Keys are accommodation ID, values are arrays
   *   containing:
   *   - total: The total quantity of that accommodation.
   *   - confirmed: The confirmed quantity of that accommodation.
   */
  public function getAllAccommodation(): array;

  /**
   * Get the maximum allowed of a given accommodation type.
   *
   * This will always be at least the confirmed count.
   *
   * @param \Drupal\contacts_events_accommodation\AccommodationInterface $accommodation
   *   The accommodation type.
   *
   * @return int|null
   *   The maximum number, or NULL if there is no max.
   */
  public function getMaxAllowedAccommodation(AccommodationInterface $accommodation): ?int;

  /**
   * Update the order items with unconfirmed items.
   *
   * @param array $quantities
   *   An array of accommodation ID to desired quantity.
   *
   * @return \Drupal\commerce_order\Entity\OrderItemInterface[]
   *   The modified order items, keyed by accommodation ID.
   */
  public function updateUnconfirmedItems(array $quantities);

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc