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

namespace Leadlion\SmartBill\Model\Data;

use Leadlion\SmartBill\Api\Data\InvoiceInterface;

class Invoice extends \Magento\Framework\Api\AbstractExtensibleObject implements InvoiceInterface
{

    /**
     * Get invoice_id
     * @return string|null
     */
    public function getInvoiceId()
    {
        return $this->_get(self::INVOICE_ID);
    }

    /**
     * Set invoice_id
     * @param string $invoiceId
     * @return \Leadlion\SmartBill\Api\Data\InvoiceInterface
     */
    public function setInvoiceId($invoiceId)
    {
        return $this->setData(self::INVOICE_ID, $invoiceId);
    }

    /**
     * Get id
     * @return string|null
     */
    public function getId()
    {
        return $this->_get(self::ID);
    }

    /**
     * Set id
     * @param string $id
     * @return \Leadlion\SmartBill\Api\Data\InvoiceInterface
     */
    public function setId($id)
    {
        return $this->setData(self::ID, $id);
    }

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

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

