<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskSr58668 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute(<<<SQL
            INSERT INTO sistema.acao (id_usuario_criacao, ds_label, ds_module, ds_controller, ds_action, id_parent, nr_ordem, fl_tipo)
                VALUES (2068, 'Importar Parcelas', 'seguro', 'rotinas', 'importarparcelas', 717, 397, 'M');
SQL
        );

        $idImportarParcelas = $this->getIdImportarParcelas();

        $this->execute(<<<SQL
INSERT INTO sistema.usuarios_acao (id_usuario, id_acao)
                           VALUES (3645, {$idImportarParcelas})
                                 ,(2881, {$idImportarParcelas})
                                 ,(3660, {$idImportarParcelas})
                                 ,(1039, {$idImportarParcelas})
                                 ,(1032, {$idImportarParcelas})
                                 ,(3674, {$idImportarParcelas});
SQL
        );
    }

    public function down(): void
    {
        $idImportarParcelas = $this->getIdImportarParcelas();

        $this->execute(<<<SQL
            DELETE FROM sistema.usuarios_acao WHERE id_acao = {$idImportarParcelas};
            DELETE FROM sistema.acao WHERE id_parent = 717 AND ds_label = 'Importar Parcelas';
SQL
        );
    }

    private function getIdImportarParcelas()
    {
        $queryParent = $this->query("SELECT id FROM sistema.acao WHERE ds_module = 'seguro' AND ds_controller = 'rotinas' AND ds_action = 'importarparcelas'");
        $rows = $queryParent->fetchAll();

        return $rows[0]['id'];
    }
}
