<?php

declare(strict_types=1);

namespace KupShop\PreordersBundle\Dto;

use KupShop\CatalogBundle\ProductList\ProductCollection;
use KupShop\KupShopBundle\Util\Price\TotalPrice;
use KupShop\PreordersBundle\Entity\Preorder;

interface DateInfo
{
    public function getId(): int;

    public function getProducts(): ProductCollection;

    public function getValidPreorders(): array;

    public function getValidDates(): array;

    public function getTotalPrice(): TotalPrice;

    public function getTotalBasePrice(): TotalPrice;

    /**
     * @return int sum of pieces of all preordered items
     */
    public function getPiecesSum(): int;

    public function isExportAvailable(): bool;

    public function getDiscountLevels(): array;

    public function getPreorder(): Preorder;

    public function getUser(): \User;
}
