<?php
declare(strict_types=1);

namespace Autogedal\Manufacturers\Service;

use Magento\Cms\Model\BlockFactory;
use Magento\Cms\Model\ResourceModel\Block as BlockResource;
use Magento\Store\Model\Store;

class CommonBlockManager
{
    private const IDENTIFIER = 'manufacturers_common_block';

    private const CONTENT = '<p>{{widget type="Magento\Cms\Block\Widget\Block" template="widget/static_block/default.phtml" block_id="homepage-testimonials"}}{{widget type="Magento\Cms\Block\Widget\Block" template="widget/static_block/default.phtml" block_id="autogedal_hp_blog"}}{{widget type="Magento\Cms\Block\Widget\Block" template="widget/static_block/default.phtml" block_id="2022_bottom_usp_homepage"}}</p>';

    public function __construct(
        private readonly BlockFactory $blockFactory,
        private readonly BlockResource $blockResource
    ) {
    }

    public function ensureExists(): void
    {
        $block = $this->blockFactory->create();
        $this->blockResource->load($block, self::IDENTIFIER, 'identifier');

        if ($block->getId()) {
            return;
        }

        $block->setTitle('Manufacturers Common Block')
            ->setIdentifier(self::IDENTIFIER)
            ->setIsActive(true)
            ->setContent(self::CONTENT)
            ->setStores([Store::DEFAULT_STORE_ID]);

        $this->blockResource->save($block);
    }
}
