<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2104232024 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute("CREATE TABLE manutencao.bkp_sistema_corretores_comercial AS SELECT * FROM sistema.corretores_comercial");
        $this->execute("DELETE FROM sistema.corretores_comercial");

        $builder = $this->getQueryBuilder();
        $builder->update('sistema.corretores')
                ->set('id_comercial'        , 1037)
                ->set('id_usuario_alteracao', 2530)
                ->set('dt_alteracao'        , 'NOW()')
                ->where(['id' => 229, 'id_comercial' => 3667])
                ->execute();
        
        $this->execute("
                         INSERT
                         INTO sistema.corretores_comercial
                            ( id_usuario_criacao
                            , dt_criacao
                            , fl_ativo
                            , fl_del
                            , id_corretor
                            , id_comercial
                            )
                       SELECT 2530 AS id_usuario_criacao
                            , NOW() AS dt_criacao
                            , corretores.fl_ativo
                            , corretores.fl_del
                            , corretores.id
                            , 3667 AS id_comercial
                         FROM sistema.corretores
                        WHERE corretores.id_comercial = 1037
                      ");
    }

    public function down(): void
    {
        $this->execute("DELETE FROM sistema.corretores_comercial");

        $builder = $this->getQueryBuilder();
        $builder->update('sistema.corretores')
                ->set('id_comercial'        , 3667)
                ->set('id_usuario_alteracao', 2881)
                ->set('dt_alteracao'        , '2021-04-23 16:57:57-03')
                ->where(['id' => 229, 'id_comercial' => 1037])
                ->execute();
        
        $this->execute("INSERT INTO sistema.corretores_comercial SELECT * from manutencao.bkp_sistema_corretores_comercial");

        $this->table('manutencao.bkp_sistema_corretores_comercial')
             ->drop()
             ->save();
    }
}
