<?php

declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskInc61599 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute("
            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 (
                'Forçar troca de senha do usuário', 
                'sistema', 
                'rotinas', 
                'forcartrocarsenha', 
                '', 
                1269, 
                '', 
                'Forçar troca de senha do usuário', 
                'M', 
                now(), 
                1008, 
                nextval('sistema.acao_id_seq'::regclass)
            )
        ");

        $this->execute("
            CREATE TABLE log.troca_senha_forcada (
                id serial NOT NULL,
                id_usuario INT NOT NULL,
                ds_justificativa VARCHAR(50) NOT NULL,
                CONSTRAINT log_troca_senha_forcada_pkey PRIMARY KEY (id)
            )
            INHERITS (public.campos_default)
        ");
    }

    public function down(): void
    {
        $this->execute("
            DELETE 
              FROM sistema.acao
             WHERE id_usuario_criacao = 1008
               AND fl_tipo = 'M'
               AND ds_descricao = 'Forçar troca de senha do usuário',
               AND id_parent = 1269,
               AND ds_label = 'Forçar troca de senha do usuário',
               AND ds_module = 'sistema',
               AND ds_controller = 'rotinas',
               AND ds_action = 'forcartrocarsenha'
        ");
        
        $this->execute("DROP TABLE log.troca_senha_forcada");
    }
}
