commerce_license-8.x-2.x-dev/src/Plugin/Commerce/LicensePeriod/LicensePeriodInterface.php
src/Plugin/Commerce/LicensePeriod/LicensePeriodInterface.php
<?php
namespace Drupal\commerce_license\Plugin\Commerce\LicensePeriod;
use Drupal\Component\Plugin\ConfigurableInterface;
use Drupal\Component\Plugin\DependentPluginInterface;
use Drupal\Core\Plugin\PluginFormInterface;
/**
* Defines an interface for license renewal plugins.
*/
interface LicensePeriodInterface extends ConfigurableInterface, DependentPluginInterface, PluginFormInterface {
/**
* Represents an unlimited end time.
*
* @var integer
*/
public const UNLIMITED = 0;
/**
* Gets the plugin label.
*
* @return string
* The plugin label.
*/
public function getLabel(): string;
/**
* Gets the plugin description.
*
* @return string
* The plugin description.
*/
public function getDescription(): string;
/**
* Calculates the end of the previous period.
*
* @param \DateTimeImmutable $date
* The date and time to begin the period from.
*
* @return \DateTimeImmutable|int
* The expiry date and time, or LicensePeriodInterface::UNLIMITED.
*/
public function calculateStart(\DateTimeImmutable $date);
/**
* Calculates the end date and time for the period.
*
* @param \DateTimeImmutable $start
* The date and time to begin the period from.
*
* @return \DateTimeImmutable|int
* The expiry date and time, or LicensePeriodInterface::UNLIMITED.
*/
public function calculateEnd(\DateTimeImmutable $start);
}
