<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2208031951 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute(<<<SQL
UPDATE sistema.acao SET ds_label = 'Laudos e Autorizações' WHERE id = 1084;

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 ('Autorizações', 'sinistro2', 'autorizacoes', 'index', '', 1084, '', 'Autorizações', 'M', '2022-09-16 13:46:50', 3379, nextval('sistema.acao_id_seq'::regclass));
SQL
);

        $query = $this->query("SELECT id FROM sistema.acao WHERE ds_label = 'Autorizações' AND ds_module = 'sinistro2' AND ds_controller = 'autorizacoes'");
        $rows = $query->fetchAll();
        $idParent = $rows[0]['id'];

        $this->execute(<<<SQL
INSERT INTO sistema.roles_acao (id_role, id_acao) VALUES (16, {$idParent});
INSERT INTO sistema.roles_acao (id_role, id_acao) VALUES (18, {$idParent});
INSERT INTO sistema.roles_acao (id_role, id_acao) VALUES (30, {$idParent});

INSERT INTO sistema.usuarios_acao (id_usuario, id_acao) VALUES (2503, {$idParent});
SQL
        );
    }

    public function down(): void
    {
        $this->execute(<<<SQL
UPDATE sistema.acao SET ds_label = 'Laudos' WHERE id = 1084;
SQL
        );

        $query = $this->query("SELECT id FROM sistema.acao WHERE ds_label = 'Autorizações' AND ds_module = 'sinistro2' AND ds_controller = 'autorizacoes'");
        $rows = $query->fetchAll();
        $idParent = $rows[0]['id'];

        $this->execute(<<<SQL
DELETE FROM sistema.roles_acao WHERE id_acao = {$idParent};
DELETE FROM sistema.acao WHERE id = {$idParent};
SQL
);
    }
}
