<?php

namespace Leadlion\Autogedal\Model\ItemProvider;

class Composite extends \Magento\Sitemap\Model\ItemProvider\Composite
{
    /**
     * Item resolvers
     *
     * @var ItemProviderInterface[]
     */
    private $itemProviders;

    /**
     * Composite constructor.
     *
     * @param ItemProviderInterface[] $itemProviders
     */
    public function __construct($itemProviders = [])
    {
        parent::__construct($itemProviders);
        $this->itemProviders = $itemProviders;
    }

    /**
     * {@inheritdoc}
     */
    public function getItems($storeId)
    {
        $items = [];

        foreach ($this->itemProviders as $key => $resolver) {
            if ($resolver instanceof \Magento\Sitemap\Model\ItemProvider\Category) {
                $key = 'category';
            }
            if ($resolver instanceof \Magento\Sitemap\Model\ItemProvider\CmsPage) {
                $key = 'cms';
            }
            if ($resolver instanceof \Magento\Sitemap\Model\ItemProvider\Product) {
                $key = 'product';
            }
            if ($resolver instanceof \Leadlion\Autogedal\Model\ItemProvider\Blog) {
                $key = 'blog';
            }
            if ($resolver instanceof \Leadlion\Autogedal\Model\ItemProvider\CatFilters) {
                $key = 'category';
            }
            foreach ($resolver->getItems($storeId) as $item) {
                $items[$key][] = $item;
            }
        }

        return $items;
    }
}
