File: D:/HostingSpaces/blijegasten/blijegasten.be/app/Komma/Shop/Products/ProductService.php
<?php
namespace App\Komma\Shop\Products;
use App\Komma\Base\Service;
use App\Komma\Shop\Products\Product\Product;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Query\Builder;
final class ProductService extends Service
{
/**
* Get the base product query
*
* @return Builder
*/
private function baseProductQuery()
{
return Product::where('active', 1)
->with('translation','images', 'categories', 'categories.translation');
}
/**
* Get the products marked as new
*
* @param int|null $amount
* @return mixed
*/
public function getNewProducts(int $amount = null)
{
$productQuery = $this->baseProductQuery()
->new()
->orderBy('updated_at');
if(isset($amount)) $productQuery = $productQuery->take($amount);
return $productQuery->get();
}
/**
* Get the products marked as favorite.
*
* @param int|null $amount
* @return mixed
*/
public function getFavoriteProducts(int $amount = null)
{
$productQuery = $this->baseProductQuery()
->favorite()
->orderBy('updated_at');
if(isset($amount)) $productQuery = $productQuery->take($amount);
return $productQuery->get();
}
}