<?php

declare(strict_types=1);

namespace Autogedal\Extend\Setup\Patch\Data;

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

class AddLeanpayPendingStatus implements DataPatchInterface
{
    private const STATUS_CODE = 'leanpay_pending';
    private const STATUS_LABEL = 'Plata asteptare Leanpay';
    private const STATE = 'pending';

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

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

    public static function getDependencies(): array
    {
        return [];
    }

    public function getAliases(): array
    {
        return [];
    }

    public function apply(): self
    {
        $connection = $this->moduleDataSetup->getConnection();

        $connection->insertOnDuplicate(
            $this->moduleDataSetup->getTable('sales_order_status'),
            ['status' => self::STATUS_CODE, 'label' => self::STATUS_LABEL]
        );

        $connection->insertOnDuplicate(
            $this->moduleDataSetup->getTable('sales_order_status_state'),
            [
                'status'           => self::STATUS_CODE,
                'state'            => self::STATE,
                'is_default'       => 0,
                'visible_on_front' => 1,
            ]
        );

        return $this;
    }
}
