<?php
/**
 * Quote Interface
 *
 * @category  Magetop Extensions
 * @package   Magetop_Quotesystem
 * @author    Magetop Developer
 * @copyright Copyright (c) Magetop (https://www.magetop.com)
 * @license   https://www.magetop.com/license.html
 */

namespace Magetop\Quotesystem\Api;

/**
 * quoteDetails interface.
 *
 * @api
 */
interface QuoteDetailsRepositoryInterface
{
    /**
     * Create or update a quote.
     *
     * @param  \Magetop\Quotesystem\Api\Data\QuoteDetailsInterface $quote
     * @return \Magetop\Quotesystem\Api\Data\QuoteDetailsInterface
     */
    public function save(\Magetop\Quotesystem\Api\Data\QuoteDetailsInterface $quote);

    /**
     * Get quote by quote Id
     *
     * @param  int $quoteId
     * @return \Magetop\Quotesystem\Api\Data\QuoteDetailsInterface
     */
    public function getById($quoteId);

    /**
     * Delete quote.
     *
     * @param  \Magetop\Quotesystem\Api\Data\QuoteDetailsInterface $quote
     * @return bool true on success
     */
    public function delete(\Magetop\Quotesystem\Api\Data\QuoteDetailsInterface $quote);

    /**
     * Delete quote by ID.
     *
     * @param  int $quoteId
     * @return bool true on success
     */
    public function deleteById($quoteId);

    /**
     * Get Product Name by quote ID.
     *
     * @param  int $quoteId
     * @return bool true on success
     */
    public function getProductByQuoteId($quoteId);

    /**
     * Get Id of the customer of the qoute which you want to delete.
     *
     * @param  int $quoteId
     * @return int $customerId
     */
    public function getCustomerIdByQuoteId($quoteId);
}
