. */ 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 { const STATUS_NEW = 'New'; const STATUS_PAID = 'Paid'; const STATUS_CONFIRMED = 'Confirmed'; const STATUS_UNCONFIRMED = 'Unconfirmed'; const STATUS_COMPLETE = 'Complete'; const STATUS_INVALID = 'Invalid'; const STATUS_EXPIRED = 'Expired'; 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; } }