<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskSR61152 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 ('PDF Carta Comunicado de Recusa', 'corretor', 'processo', 'gerarpdfcomunicadorecusa', '', 1636, '', 'PDF Carta Comunicado de Recusa', 'A', '2025-12-05 11:17:11', 3379, nextval('sistema.acao_id_seq'::regclass));
SQL
        );

        $id = $this->getId();

        $this->execute(<<<SQL
INSERT INTO sistema.roles_acao (id_role, id_acao)
                        VALUES (24, {$id}),
                               (25, {$id}),
                               (28, {$id}),
                               (16, {$id}),
                               (6, {$id});
SQL
        );
    }

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

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

    private function getId(): int
    {
        $query = $this->query("SELECT id FROM sistema.acao WHERE ds_module = 'corretor' AND ds_controller = 'processo' AND ds_action = 'gerarpdfcomunicadorecusa'");
        $rows = $query->fetchAll();
        return (int)$rows[0]['id'];
    }
}
