File: D:/HostingSpaces/SBogers95/rentman.io/app/Komma/Shop/Checkout/CheckoutServiceInterface.php
<?php
namespace App\Komma\Shop\Checkout;
use App\Komma\Shop\Cart\ShoppingCartItemInterface;
use App\Komma\Shop\Orders\Models\Order;
use App\Komma\Users\Models\User;
use Illuminate\Http\RedirectResponse;
/**
* Interface CheckoutServiceInterface
*
* A checkout service sits between Order related code and payment related code.
* It directs those two domains to work together.
*/
interface CheckoutServiceInterface
{
/**
* @param ShoppingCartItemInterface[] $shoppingCartItems
* @param User $customer
* @return Order|null
* @throws \Throwable
*/
public function createOrderFromShoppingCartItemsForCustomer($shoppingCartItems, User $customer): ?Order;
/**
* Initializes a payment request for the user that owns the order.
*
* @param Order $order
* @return \HttpResponse
*/
public function startPaymentForOrder(Order $order): RedirectResponse;
}