. */ namespace Storefront\BTCPay\Model; use Magento\Framework\Api\DataObjectHelper; use Storefront\BTCPay\Api\Data\InvoiceInterface; use Storefront\BTCPay\Api\Data\InvoiceInterfaceFactory; class Invoice extends \Magento\Framework\Model\AbstractModel { protected $invoiceDataFactory; protected $dataObjectHelper; protected $_eventPrefix = 'storefront_btcpay_invoice'; /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param InvoiceInterfaceFactory $invoiceDataFactory * @param DataObjectHelper $dataObjectHelper * @param \Storefront\BTCPay\Model\ResourceModel\Invoice $resource * @param \Storefront\BTCPay\Model\ResourceModel\Invoice\Collection $resourceCollection * @param array $data */ public function __construct(\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, InvoiceInterfaceFactory $invoiceDataFactory, DataObjectHelper $dataObjectHelper, \Storefront\BTCPay\Model\ResourceModel\Invoice $resource, \Storefront\BTCPay\Model\ResourceModel\Invoice\Collection $resourceCollection, array $data = []) { $this->invoiceDataFactory = $invoiceDataFactory; $this->dataObjectHelper = $dataObjectHelper; parent::__construct($context, $registry, $resource, $resourceCollection, $data); } /** * Retrieve invoice model with invoice data * @return InvoiceInterface */ public function getDataModel() { $invoiceData = $this->getData(); $invoiceDataObject = $this->invoiceDataFactory->create(); $this->dataObjectHelper->populateWithArray($invoiceDataObject, $invoiceData, InvoiceInterface::class); return $invoiceDataObject; } }