<?php

namespace Eadesigndev\Urgent\Ui\Component\Listing\Column;

use \Magento\Sales\Api\OrderRepositoryInterface;
use \Magento\Framework\View\Element\UiComponent\ContextInterface;
use \Magento\Framework\View\Element\UiComponentFactory;
use \Magento\Ui\Component\Listing\Columns\Column;
use \Magento\Framework\Api\SearchCriteriaBuilder;
use \Eadesigndev\Awb\Helper\Preview;

#[\AllowDynamicProperties]
class AwbPreview extends Column
{
    protected $_orderRepository;
    protected $_searchCriteria;
    protected $previewManager;

    public function __construct(
        ContextInterface $context,
        UiComponentFactory $uiComponentFactory,
        OrderRepositoryInterface $orderRepository,
        SearchCriteriaBuilder $criteria,
        array $components = [],
        array $data = [])
    {
        $this->_orderRepository = $orderRepository;
        $this->_searchCriteria  = $criteria;


        parent::__construct($context, $uiComponentFactory, $components, $data);
    }

    public function prepareDataSource(array $dataSource)
    {
        $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $this->previewManager = $objectManager->create('Eadesigndev\Awb\Helper\Preview');

        if (isset($dataSource['data']['items'])) {
            foreach ($dataSource['data']['items'] as & $item) {
                $carrierIdentifier = $item["carrier_name"] ?? $item["carrier_id"];
                if (!empty($item["awb_number"])) {
                    $item["awb_number"] = $this->previewManager->getPreviewUrl($carrierIdentifier, $item["awb_number"], null, true, $item["awb_pickup_id"] ?? $item["pickup_id"]);
                }
            }
        }

        return $dataSource;
    }
}