<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskInc58078 extends AbstractMigration
{
    public function up(): void
    {
        $row = $this->fetchRow('SELECT id FROM seguro.propostas WHERE id = 1024992');
        if ($row['id']) {
            $vist = $this->fetchRow("SELECT manutencao.vpd_replica_vistoria(1024992,371396)");
            $prop = $this->fetchRow("SELECT id FROM seguro.propostas_vistorias_previas where id_vistoria = {$vist[0]}");

            $builder = $this->getQueryBuilder();
            $builder->update('seguro.propostas_vistorias_previas')
                    ->set('id_status', 66)
                    ->where(['id_proposta' => 1024992, 'id_vistoria' => $vist[0]])
                    ->execute();

            $table = $this->table('sistema.vistorias_empresas');
            $singleRow = [
                           'id_usuario_criacao' => 2068
                         , 'dt_criacao' => 'NOW()'
                         , 'id_vistoria' => $vist[0]
                         , 'id_empresa' => 413
            ];
            $table->insert($singleRow)
                  ->saveData();

            $delete = $this->getQueryBuilder();
            $delete->delete('seguro.propostas_vistorias_previas_historico')
                   ->where(['dt_criacao >' => '2025-08-04 00:00:00', 'id_status' => 202, 'id_status_analise' => 233, 'id_proposta_vistoria' => $prop['id']])
                   ->execute();
        }
    }

    public function down(): void
    {
        $row = $this->fetchRow('SELECT id FROM seguro.propostas WHERE id = 1024992');
        if ($row['id']) {
            $prop = $this->fetchRow("SELECT MAX(id)          AS id_proposta_vistoria
                                          , MAX(id_vistoria) AS id_vistoria
                                       FROM seguro.propostas_vistorias_previas
                                      WHERE dt_criacao > '2025-08-04 00:00:00'
                                        AND id_usuario_criacao = 2068
                                   ");

            $delete = $this->getQueryBuilder();
            $delete->delete('seguro.propostas_vistorias_previas_historico')
                   ->where(['id_proposta_vistoria' => $prop['id_proposta_vistoria']])
                   ->execute();

            $delete = $this->getQueryBuilder();
            $delete->delete('seguro.propostas_vistorias_previas')
                    ->where(['id' => $prop['id_proposta_vistoria'], 'id_vistoria' => $prop['id_vistoria']])
                   ->execute();

            $delete = $this->getQueryBuilder();
            $delete->delete('sistema.vistorias_empresas')
                   ->where(['id_vistoria' => $prop['id_vistoria']])
                   ->execute();

            $delete = $this->getQueryBuilder();
            $delete->delete('sistema.vistorias')
                   ->where(['id' => $prop['id_vistoria']])
                   ->execute();
        }
    }
}
