HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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();
    }
}