<?php
namespace Autogedal\BlogInternalLinking\Model\Group;

use Magento\Ui\DataProvider\AbstractDataProvider;
use Autogedal\BlogInternalLinking\Model\ResourceModel\Group\CollectionFactory;

class DataProvider extends AbstractDataProvider
{
    protected $loadedData;

    public function __construct(
        $name,
        $primaryFieldName,
        $requestFieldName,
        CollectionFactory $collectionFactory,
        array $meta = [],
        array $data = []
    ) {
        $this->collection = $collectionFactory->create();
        parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data);
    }

    public function getData()
    {
        if (isset($this->loadedData)) {
            return $this->loadedData;
        }
        foreach ($this->collection->getItems() as $group) {
            $data = $group->getData();
            if (!empty($data['carousel_category_id'])) {
                $data['carousel_category_id'] = explode(',', $data['carousel_category_id']);
            }
            $this->loadedData[$group->getId()] = $data;
        }
        return $this->loadedData ?? [];
    }
}
