commerce_license-8.x-2.x-dev/src/LicenseStorageInterface.php
src/LicenseStorageInterface.php
<?php
namespace Drupal\commerce_license;
use Drupal\commerce_order\Entity\OrderItemInterface;
use Drupal\commerce_product\Entity\ProductVariationInterface;
use Drupal\Core\Entity\ContentEntityStorageInterface;
/**
* Defines the storage handler class for License entities.
*
* This extends the base storage class, adding required special handling for
* License entities.
*
* @ingroup commerce_license
*/
interface LicenseStorageInterface extends ContentEntityStorageInterface {
/**
* Get existing active license given a product variation and a user ID.
*
* @param \Drupal\commerce_product\Entity\ProductVariationInterface $variation
* The product variation.
* @param int $uid
* The uid for whom the license will be retrieved.
*
* @return \Drupal\commerce_license\Entity\LicenseInterface|false
* An existing license entity. FALSE otherwise.
*/
public function getExistingLicense(ProductVariationInterface $variation, int $uid);
/**
* Creates a new license from an order item.
*
* @param \Drupal\commerce_order\Entity\OrderItemInterface $order_item
* The order item. Values for the license will be taken from the order
* item's customer and the purchased entity's license_type and
* license_expiration fields.
*
* @return \Drupal\commerce_license\Entity\LicenseInterface
* A new, unsaved license entity, whose state is 'new'.
*/
public function createFromOrderItem(OrderItemInterface $order_item);
/**
* Creates a new license from a product variation.
*
* @param \Drupal\commerce_product\Entity\ProductVariationInterface $variation
* The product variation. Values for the license will be taken from the
* license_type and license_expiration fields.
* @param int $uid
* The uid for whom the license will be created.
*
* @return \Drupal\commerce_license\Entity\LicenseInterface
* A new, unsaved license entity, whose state is 'new'.
*/
public function createFromProductVariation(ProductVariationInterface $variation, int $uid);
}
