<?xml version="1.0"?>
<!--
/**
 * @author      Olegnax
 * @package     Olegnax_BrandSlider
 * @copyright   Copyright (c) 2025 Olegnax (http://olegnax.com/). All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    
    <!-- Model Layer Dependencies -->
    <type name="Olegnax\BrandSlider\Model\Attribute">
        <arguments>
            <argument name="repository" xsi:type="object">Magento\Catalog\Model\Product\Attribute\Repository</argument>
            <argument name="logger" xsi:type="object">Psr\Log\LoggerInterface</argument>
        </arguments>
    </type>
    
    <type name="Olegnax\BrandSlider\Model\ImageFile">
        <arguments>
            <argument name="filesystem" xsi:type="object">Magento\Framework\Filesystem</argument>
            <argument name="cache" xsi:type="object">Magento\Framework\App\CacheInterface</argument>
            <argument name="serializer" xsi:type="object">Magento\Framework\Serialize\SerializerInterface</argument>
            <argument name="imageHelper" xsi:type="object">Olegnax\BrandSlider\Helper\Image</argument>
            <argument name="logger" xsi:type="object">Psr\Log\LoggerInterface</argument>
        </arguments>
    </type>
    
    <type name="Olegnax\BrandSlider\Model\Brand">
        <arguments>
            <argument name="attributeModel" xsi:type="object">Olegnax\BrandSlider\Model\Attribute</argument>
            <argument name="imageFileModel" xsi:type="object">Olegnax\BrandSlider\Model\ImageFile</argument>
            <argument name="configHelper" xsi:type="object">Olegnax\BrandSlider\Helper\Config</argument>
        </arguments>
    </type>
    
    <!-- Helper Dependencies -->
    <type name="Olegnax\BrandSlider\Helper\Helper">
        <arguments>
            <argument name="brandModel" xsi:type="object">Olegnax\BrandSlider\Model\Brand</argument>
            <argument name="configHelper" xsi:type="object">Olegnax\BrandSlider\Helper\Config</argument>
        </arguments>
    </type>
    
    <!-- Console Command Dependencies -->
    <type name="Olegnax\BrandSlider\Console\WarmFileCacheCommand">
        <arguments>
            <argument name="brandModel" xsi:type="object">Olegnax\BrandSlider\Model\Brand</argument>
        </arguments>
    </type>
    
    <!-- Console commands -->
    <type name="Magento\Framework\Console\CommandListInterface">
        <arguments>
            <argument name="commands" xsi:type="array">
                <item name="olegnax_brandslider_warm_cache" xsi:type="object">Olegnax\BrandSlider\Console\WarmFileCacheCommand</item>
            </argument>
        </arguments>
    </type>
</config>
