File: D:/HostingSpaces/meuwis/lmbm.be/app/KommaApp/Shop/Products/Product/ProductServiceInterface.php
<?php
/**
* Created by PhpStorm.
* User: julesgraus
* Date: 23/02/2018
* Time: 13:37
*/
namespace App\KommaApp\Shop\Products\Product;
use App\KommaApp\Kms\Core\Sections\SectionServiceInterface;
use App\KommaApp\Shop\Orders\Models\Order;
use App\KommaApp\Shop\Orders\Product\OrderedProduct;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Query\Builder;
/**
* Class ProductService
* @package App\KommaApp\Shop\Products
*/
interface ProductServiceInterface extends SectionServiceInterface
{
/**
* This method will save an model
*
* @param $model Model or null
* @param Collection $sectionTabItems These must be filled with data. This is something you need to do yourself.
*
* @return mixed
*/
public function saveModel(Model $model = null, Collection $sectionTabItems): Model;
/**
* Return all products that are not in groups
*
* @return Builder
*/
public function modelsWithoutGroups();
/**
* Makes ordered products from products
*
* @param Product $product
* @param Order $order
* @return null|OrderedProduct|\Illuminate\Support\Collection
*/
public static function createOrderedProductFromProduct(Product $product, Order $order);
}