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/SBogers10/conmeq.komma.pro/app/Komma/Shop/Checkout/CheckoutServiceInterface.php
<?php

namespace App\Komma\Shop\Checkout;

use App\Komma\Addresses\Models\Address;
use App\Komma\Shop\Cart\ShoppingCartItemInterface;
use App\Komma\Shop\Orders\Models\Order;
use App\Komma\Users\Models\SiteUser;
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.
 *
 * @package App\Komma\Shop\Checkout
 */
interface CheckoutServiceInterface
{
    /**
     * @param ShoppingCartItemInterface[] $shoppingCartItems
     * @param SiteUser $customer
     * @param Address $addressForShipping
     * @param Address $addressForInvoice
     * @return Order|null
     */
    public function createOrderFromShoppingCartItems(array $shoppingCartItems, SiteUser $customer, Address $addressForShipping, Address $addressForInvoice): ?Order;

    /**
     * Initializes a payment request for the user that owns the order.
     *
     * @param Order $order
     * @return RedirectResponse
     */
    public function startPaymentForOrder(Order $order): RedirectResponse;


    /**
     * Returns the last used shipping address for the user or null if that not exists
     *
     * @param SiteUser $user
     * @return Address
     */
    public function getLastUsedShippingAddressForUser(SiteUser $user): ? Address;

    /**
     * Returns the last used invoice address for the user or null if that not exists
     *
     * @param SiteUser $user
     * @return Address
     */
    public function getLastUsedInvoiceAddressForUser(SiteUser $user): ? Address;
}