arch-8.x-1.x-dev/modules/product/src/Entity/ProductInterface.php
modules/product/src/Entity/ProductInterface.php
<?php
namespace Drupal\arch_product\Entity;
use Drupal\Core\Entity\ContentEntityInterface;
use Drupal\Core\Entity\EntityChangedInterface;
use Drupal\Core\Entity\EntityPublishedInterface;
use Drupal\Core\Entity\RevisionLogInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\user\EntityOwnerInterface;
/**
* Product entity interface.
*
* @package Drupal\arch_product\Entity
*/
interface ProductInterface extends ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface, RevisionLogInterface, EntityPublishedInterface {
/**
* Denotes that the product is not published.
*/
const NOT_PUBLISHED = 0;
/**
* Denotes that the product is published.
*/
const PUBLISHED = 1;
/**
* Denotes that the product is not promoted to the front page.
*/
const NOT_PROMOTED = 0;
/**
* Denotes that the product is promoted to the front page.
*/
const PROMOTED = 1;
/**
* Denotes that the product is not sticky at the top of the page.
*/
const NOT_STICKY = 0;
/**
* Denotes that the product is sticky at the top of the page.
*/
const STICKY = 1;
/**
* Gets the product type.
*
* @return string
* The product type.
*/
public function getType();
/**
* Gets the product title.
*
* @return string
* Title of the product.
*/
public function getTitle();
/**
* Sets the product title.
*
* @param string $title
* The product title.
*
* @return \Drupal\arch_product\Entity\ProductInterface
* The called product entity.
*/
public function setTitle($title);
/**
* Gets the product SKU.
*
* @return string
* SKU of the product.
*/
public function getSku();
/**
* Sets the product SKU.
*
* @param string $sku
* The product SKU.
*
* @return \Drupal\arch_product\Entity\ProductInterface
* The called product entity.
*/
public function setSku($sku);
/**
* Gets the product creation timestamp.
*
* @return int
* Creation timestamp of the product.
*/
public function getCreatedTime();
/**
* Sets the product creation timestamp.
*
* @param int $timestamp
* The product creation timestamp.
*
* @return \Drupal\arch_product\Entity\ProductInterface
* The called product entity.
*/
public function setCreatedTime($timestamp);
/**
* Get availability value.
*
* @return string
* Availability value.
*/
public function getAvailability();
/**
* Sets availability value.
*
* @param string $availability
* Availability status.
*
* @return $this
*/
public function setAvailability($availability);
/**
* Returns the product promotion status.
*
* @return bool
* TRUE if the product is promoted.
*/
public function isPromoted();
/**
* Sets the product promoted status.
*
* @param bool $promoted
* TRUE to set this product to promoted, FALSE to set it to not promoted.
*
* @return \Drupal\arch_product\Entity\ProductInterface
* The called product entity.
*/
public function setPromoted($promoted);
/**
* Returns the product sticky status.
*
* @return bool
* TRUE if the product is sticky.
*/
public function isSticky();
/**
* Sets the product sticky status.
*
* @param bool $sticky
* TRUE to set this product to sticky, FALSE to set it to not sticky.
*
* @return \Drupal\arch_product\Entity\ProductInterface
* The called product entity.
*/
public function setSticky($sticky);
/**
* Gets the product revision creation timestamp.
*
* @return int
* The UNIX timestamp of when this revision was created.
*/
public function getRevisionCreationTime();
/**
* Sets the product revision creation timestamp.
*
* @param int $timestamp
* The UNIX timestamp of when this revision was created.
*
* @return \Drupal\arch_product\Entity\ProductInterface
* The called product entity.
*/
public function setRevisionCreationTime($timestamp);
/**
* Get list of prices.
*
* @return array
* List of prices.
*/
public function getPrices();
/**
* Get list of prices available for given user.
*
* @param \Drupal\Core\Session\AccountInterface $account
* User.
*
* @return array
* List of available prices.
*/
public function getAvailablePrices(?AccountInterface $account = NULL);
/**
* Get active price.
*
* @param \Drupal\Core\Session\AccountInterface $account
* User.
*
* @return \Drupal\arch_price\Price\PriceInterface
* Active price.
*/
public function getActivePrice(?AccountInterface $account = NULL);
/**
* Check if product has any available price for given customer.
*
* @param \Drupal\Core\Session\AccountInterface $account
* Customer.
*
* @return bool
* Return FALSE if has no available price.
*/
public function hasPrice(?AccountInterface $account = NULL);
/**
* Check if product is available for sell.
*
* @param \Drupal\Core\Session\AccountInterface $account
* Customer.
*
* @return bool
* Return FALSE if has no available for sell.
*/
public function availableForSell(?AccountInterface $account = NULL);
}
