<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskSR56716 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 ('Excluir Propriedades Relacionadas - Checkbox', 'comercializacao', 'taxacar', 'excluirpropriedadesrelacionadascheckbox', '', 2068, '', 'Habilita checkbox por linha de propriedade e permite excluir vários de uma vez.', 'A', '2025-06-26 16:30:39', 3379, nextval('sistema.acao_id_seq'::regclass));
SQL
        );

        $id = $this->getIdAcao();

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

    public function down(): void
    {
        $id = $this->getIdAcao();

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

    private function getIdAcao()
    {
        $query = $this->query("SELECT id FROM sistema.acao WHERE ds_module = 'comercializacao' AND ds_controller = 'taxacar' AND ds_action = 'excluirpropriedadesrelacionadascheckbox'");
        $rows = $query->fetchAll();

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