<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2305191437 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute(<<<SQL
INSERT INTO sistema.acao (ds_label, ds_module, ds_controller, ds_action, ds_param, id_parent, ds_image, ds_descricao, fl_tipo, dt_criacao, id_usuario_criacao, id) VALUES ('Liberar Validações IS', 'seguro', 'proposta', 'liberarvalidacoesis', '', 27, '', 'Liberar Validações IS', 'A', '2023-06-21 11:22:11', 3379, nextval('sistema.acao_id_seq'::regclass));
INSERT INTO sistema.usuarios_acao (id_usuario, id_acao) VALUES (2881, 713);
SQL
);

        $idParent = $this->idNovaAcao();

        $this->execute(<<<SQL
INSERT INTO sistema.usuarios_acao (id_usuario, id_acao) VALUES (2881, {$idParent})
                                                               ,(1032, {$idParent});
SQL
        );
    }

    public function down(): void
    {
        $idParent = $this->idNovaAcao();

        $this->execute(<<<SQL
DELETE FROM sistema.usuarios_acao WHERE id_acao = {$idParent};
DELETE FROM sistema.acao WHERE id = {$idParent};
DELETE FROM sistema.usuarios_acao id_usuario = 2881 AND id_acao = 713;
SQL
);
    }

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

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