<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2208251812 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 (
                'Controle de Safra e Data de Emissão das Apólices',
                'relatorio',
                'tecnica',
                'controlesafradataemissaoapolices',
                'formsaframultiselect',
                709,
                '',
                'Controle de Safra e Data de Emissão das Apólices',
                'R',
                '2022-09-15 15:31:44',
                3491,
                nextval('sistema.acao_id_seq'::regclass)
            );

            -- Permissão para a técnica
            INSERT INTO sistema.roles_acao (id_role, id_acao) VALUES (20, currval('sistema.acao_id_seq'));
            -- Permissão para a Carolina Aguiar
            INSERT INTO sistema.usuarios_acao (id_usuario_criacao, dt_criacao, id_usuario, id_acao) VALUES (3491, NOW(), 1600, 330);
            INSERT INTO sistema.usuarios_acao (id_usuario_criacao, dt_criacao, id_usuario, id_acao) VALUES (3491, NOW(), 1600, 709);
            INSERT INTO sistema.usuarios_acao (id_usuario_criacao, dt_criacao, id_usuario, id_acao) VALUES (3491, NOW(), 1600, currval('sistema.acao_id_seq'));
SQL
        );
    }

    public function down(): void
    {
        $this->execute(<<<SQL
            DELETE FROM sistema.usuarios_acao WHERE id_usuario = 1600 AND id_acao in (SELECT id FROM sistema.acao WHERE ds_module = 'relatorio' AND ds_controller = 'tecnica' AND ds_action = 'controlesafradataemissaoapolices');
            DELETE FROM sistema.usuarios_acao WHERE id_usuario = 1600 AND id_acao in (709);
            DELETE FROM sistema.usuarios_acao WHERE id_usuario = 1600 AND id_acao in (330);
            DELETE FROM sistema.roles_acao WHERE id_role = 20 AND id_acao in (SELECT id FROM sistema.acao WHERE ds_module = 'relatorio' AND ds_controller = 'tecnica' AND ds_action = 'controlesafradataemissaoapolices');
            DELETE FROM sistema.acao WHERE ds_module = 'relatorio' AND ds_controller = 'tecnica' AND ds_action = 'controlesafradataemissaoapolices';
SQL
        );
    }
}
