<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskSr43904 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute(<<<SQL
            INSERT INTO sistema.acao (id_usuario_criacao, dt_criacao, ds_label, ds_module, ds_controller, ds_action, id_parent, ds_descricao, fl_tipo)
                VALUES(
                    2068,
                    now(),
                    'Permitir alterar para o status de Indenização Paga',
                    'sinistro2',
                    'liquidacao',
                    'alterarstatusindenizacaopaga',
                    1638,
                    'Permitir alterar para o status de Indenização Paga',
                    'A'
                );
            
            --  id  | ds_nome_usuario
            --------+------------------
            -- 1854 | tatiana.tondim
            -- 2503 | tiago.zschornack
            -- 3971 | gabriela.couto
            INSERT INTO sistema.usuarios_acao (id_usuario_criacao, dt_criacao, id_usuario, id_acao)
                VALUES (2068, now(), 1854, (SELECT id FROM sistema.acao WHERE ds_module = 'sinistro2' AND ds_controller = 'liquidacao' AND ds_action = 'alterarstatusindenizacaopaga' AND id_parent = 1638)),
                       (2068, now(), 2503, (SELECT id FROM sistema.acao WHERE ds_module = 'sinistro2' AND ds_controller = 'liquidacao' AND ds_action = 'alterarstatusindenizacaopaga' AND id_parent = 1638)),
                       (2068, now(), 3971, (SELECT id FROM sistema.acao WHERE ds_module = 'sinistro2' AND ds_controller = 'liquidacao' AND ds_action = 'alterarstatusindenizacaopaga' AND id_parent = 1638));
SQL
        );
    }

    public function down(): void
    {
        $this->execute(<<<SQL
            DELETE FROM sistema.usuarios_acao
                  WHERE id_acao = (SELECT id
                                     FROM sistema.acao
                                    WHERE id_usuario_criacao = 2068
                                      AND ds_label = 'Permitir alterar para o status de Indenização Paga'
                                      AND ds_module = 'sinistro2'
                                      AND ds_controller = 'liquidacao'
                                      AND ds_action = 'alterarstatusindenizacaopaga'
                                      AND id_parent = 1638
            );

            DELETE FROM sistema.acao WHERE id_usuario_criacao = 2068
                                       AND ds_label = 'Permitir alterar para o status de Indenização Paga'
                                       AND ds_module = 'sinistro2'
                                       AND ds_controller = 'liquidacao'
                                       AND ds_action = 'alterarstatusindenizacaopaga'
                                       AND id_parent = 1638;
SQL
        );
    }
}
