<?php
/**
 * Copyright ©  All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

namespace Leadlion\SmartBill\Api\Data;

interface InvoiceInterface extends \Magento\Framework\Api\ExtensibleDataInterface
{

    const ID = 'id';
    const INVOICE_ID = 'invoice_id';

    /**
     * Get invoice_id
     * @return string|null
     */
    public function getInvoiceId();

    /**
     * Set invoice_id
     * @param string $invoiceId
     * @return \Leadlion\SmartBill\Api\Data\InvoiceInterface
     */
    public function setInvoiceId($invoiceId);

    /**
     * Get id
     * @return string|null
     */
    public function getId();

    /**
     * Set id
     * @param string $id
     * @return \Leadlion\SmartBill\Api\Data\InvoiceInterface
     */
    public function setId($id);

    /**
     * Retrieve existing extension attributes object or create a new one.
     * @return \Leadlion\SmartBill\Api\Data\InvoiceExtensionInterface|null
     */
    public function getExtensionAttributes();

    /**
     * Set an extension attributes object.
     * @param \Leadlion\SmartBill\Api\Data\InvoiceExtensionInterface $extensionAttributes
     * @return $this
     */
    public function setExtensionAttributes(
        \Leadlion\SmartBill\Api\Data\InvoiceExtensionInterface $extensionAttributes
    );
}

