<?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 PickupName extends Column
{
    protected $_orderRepository;
    protected $_searchCriteria;
    protected $pickupManager;

    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->pickupManager = $objectManager->create('Eadesigndev\Awb\Helper\PickupName');

        if (isset($dataSource['data']['items'])) {
            foreach ($dataSource['data']['items'] as & $item) {

                $carrierIdentifier = $item["carrier_id"];

                if ($item["awb_pickup_id"] >= 0 && $carrierIdentifier > 0) {
                    $item["awb_pickup_id"] = $this->pickupManager->getPickUpName($carrierIdentifier, $item["awb_pickup_id"], null, true);
                }
            }
        }

        return $dataSource;
    }
}