42 lines
884 B
PHP
42 lines
884 B
PHP
|
<?php
|
||
|
|
||
|
namespace Modules\Coupon\Entities\Concerns;
|
||
|
|
||
|
trait RelationList
|
||
|
{
|
||
|
/**
|
||
|
* Get the list of the coupon applicable products.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function productList()
|
||
|
{
|
||
|
return $this->getItemList('products');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the list of the excluded products.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function excludeProductList()
|
||
|
{
|
||
|
return $this->getItemList('excludeProducts');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the item list for the given coupon with the given attribute.
|
||
|
*
|
||
|
* @param string $attributes
|
||
|
* @return array
|
||
|
*/
|
||
|
private function getItemList($attribute)
|
||
|
{
|
||
|
$items = $this->getAttribute($attribute);
|
||
|
|
||
|
return $items->mapWithKeys(function ($item) {
|
||
|
return [$item->id => $item->name];
|
||
|
})->all();
|
||
|
}
|
||
|
}
|