<?php
declare(strict_types=1);

namespace Leadlion\Autogedal\Setup\Patch\Data;

use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\Patch\DataPatchInterface;

class UpdateOrderConfirmationEmailSubject implements DataPatchInterface
{
    private const TEMPLATE_CODE = 'AutoGedal.Ro - Comandă nouă';
    private const NEW_SUBJECT = 'AutoGedal.Ro - Confirmare comandă #{{var order.user_increment_id}}';

    /**
     * @var ModuleDataSetupInterface
     */
    private $moduleDataSetup;

    public function __construct(ModuleDataSetupInterface $moduleDataSetup)
    {
        $this->moduleDataSetup = $moduleDataSetup;
    }

    /**
     * @inheritDoc
     */
    public function apply(): UpdateOrderConfirmationEmailSubject
    {
        $connection = $this->moduleDataSetup->getConnection();
        $table = $this->moduleDataSetup->getTable('email_template');

        $connection->update(
            $table,
            ['template_subject' => self::NEW_SUBJECT],
            ['template_code = ?' => self::TEMPLATE_CODE]
        );

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function getAliases(): array
    {
        return [];
    }

    /**
     * @inheritDoc
     */
    public static function getDependencies(): array
    {
        return [];
    }
}
