<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskSr56807 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute(<<<SQL
            INSERT INTO sistema.acao(id_usuario_criacao, ds_label, ds_module, ds_controller, ds_action, ds_param, id_parent, nr_ordem, ds_descricao, fl_tipo)
                VALUES (
                    2068,
                    'Relatório de Identificação de Crédito',
                    'relatorio',
                    'sinistro',
                    'identificacaocredito',
                    'formidentificacaocredito',
                    332,
                    1359,
                    'Pagamentos de indenização para identificação de Crédito',
                    'R'
                );

            INSERT INTO sistema.roles_acao (id_acao, id_role, id_usuario_criacao) VALUES (currval('sistema.acao_id_seq'), 6, 2068);

            INSERT INTO sistema.usuarios_acao (id_acao, id_usuario, id_usuario_criacao)
                SELECT
                    currval('sistema.acao_id_seq'),
                    id,
                    2068
                FROM sistema.usuarios
                WHERE
                    tp_usuario = 'F'
                    AND fl_ativo IS TRUE;
SQL
        );
    }

    public function down(): void
    {
        $this->execute(<<<SQL
            DELETE FROM sistema.roles_acao WHERE id_acao = (SELECT id FROM sistema.acao WHERE ds_action = 'identificacaocredito');
            DELETE FROM sistema.usuarios_acao WHERE id_acao = (SELECT id FROM sistema.acao WHERE ds_action = 'identificacaocredito');
            DELETE FROM sistema.acao WHERE ds_action = 'identificacaocredito';
SQL
        );
    }
}
