<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskSr46150 extends AbstractMigration
{
    public function up(): void
    {
        $row = $this->fetchRow('SELECT id FROM seguro.propostas WHERE id = 945445');
        if ($row['id']) {
            //PRIMEIRO CASO
            $this->execute("CREATE TABLE manutencao.SR_46150_proposta_boletos               AS SELECT * FROM seguro.proposta_boletos               WHERE id_proposta IN (909661, 919767, 920858)");
            $this->execute("CREATE TABLE manutencao.SR_46150_propostas_boletos_prorrogacoes AS SELECT * FROM seguro.propostas_boletos_prorrogacoes WHERE id_proposta IN (909661, 919767, 920858)");

            $this->execute("SELECT manutencao.atualizar_status (919767, 62, 919767, NULL, FALSE)");
            $this->execute("SELECT manutencao.atualizar_status (909661, 62, 909661, NULL, FALSE)");
            $this->execute("SELECT manutencao.atualizar_status (920858, 62, 945639, NULL, FALSE)");

            $this->execute("UPDATE seguro.propostas SET nr_apolice = NULL, ds_identificador_seguradora = 9688532 WHERE id = 919767");
            $this->execute("UPDATE seguro.propostas SET nr_apolice = NULL, ds_identificador_seguradora = 9640942 WHERE id = 909661");
            $this->execute("UPDATE seguro.propostas SET nr_apolice = NULL, ds_identificador_seguradora = 9803263 WHERE id = 920858");

            $this->execute("DELETE FROM seguro.proposta_boletos               WHERE id_proposta IN (909661, 919767, 920858)");
            $this->execute("DELETE FROM seguro.propostas_boletos_prorrogacoes WHERE id_proposta IN (909661, 919767, 920858)");

            //SEGUNDO CASO
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801482 WHERE id = 924872");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801501 WHERE id = 925238");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801519 WHERE id = 925273");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801510 WHERE id = 926445");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801499 WHERE id = 926819");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801473 WHERE id = 927074");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801524 WHERE id = 928198");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801544 WHERE id = 928237");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801493 WHERE id = 929063");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801497 WHERE id = 929186");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801475 WHERE id = 930316");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801532 WHERE id = 930445");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801546 WHERE id = 931458");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801515 WHERE id = 931767");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801406 WHERE id = 931773");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801531 WHERE id = 931775");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801514 WHERE id = 932482");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801521 WHERE id = 932668");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801461 WHERE id = 932774");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801439 WHERE id = 932868");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801539 WHERE id = 932885");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801467 WHERE id = 932993");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801535 WHERE id = 933562");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801511 WHERE id = 934118");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801437 WHERE id = 934120");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801478 WHERE id = 934999");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801432 WHERE id = 937156");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801504 WHERE id = 937750");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801456 WHERE id = 937794");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801523 WHERE id = 937918");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801547 WHERE id = 938413");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801480 WHERE id = 938611");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801534 WHERE id = 938709");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801527 WHERE id = 938929");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801431 WHERE id = 940218");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801545 WHERE id = 941553");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801505 WHERE id = 943124");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9799130 WHERE id = 945445");

            $this->execute("DELETE FROM seguro.proposta_boletos               WHERE id_proposta IN ( 924872, 925238, 925273, 926445, 926819, 927074, 928198, 928237, 929063, 929186, 930316, 930445, 931458
                                                                                                   , 931767, 931773, 931775, 932482, 932668, 932774, 932868, 932885, 932993, 933562, 934118, 934120, 934999
                                                                                                   , 937156, 937750, 937794, 937918, 938413, 938611, 938709, 938929, 940218, 941553, 943124, 945445)");
            $this->execute("DELETE FROM seguro.propostas_boletos_prorrogacoes WHERE id_proposta IN ( 924872, 925238, 925273, 926445, 926819, 927074, 928198, 928237, 929063, 929186, 930316, 930445, 931458
                                                                                                   , 931767, 931773, 931775, 932482, 932668, 932774, 932868, 932885, 932993, 933562, 934118, 934120, 934999
                                                                                                   , 937156, 937750, 937794, 937918, 938413, 938611, 938709, 938929, 940218, 941553, 943124, 945445)");
        }
        
    }

    public function down(): void
    {
        $row = $this->fetchRow('SELECT id FROM seguro.propostas WHERE id = 945445');
        if ($row['id']) {
            //PRIMEIRO CASO
            $this->execute("SELECT manutencao.atualizar_status (919767, 13, 919767, NULL, FALSE)");
            $this->execute("SELECT manutencao.atualizar_status (909661,  8, 909661, NULL, FALSE)");
            $this->execute("SELECT manutencao.atualizar_status (920858,  8, 945639, NULL, FALSE)");

            $this->execute("UPDATE seguro.propostas SET nr_apolice = 1000111236138, ds_identificador_seguradora = 9688533 WHERE id = 919767");
            $this->execute("UPDATE seguro.propostas SET nr_apolice = 1000111233579, ds_identificador_seguradora = 9640947 WHERE id = 909661");
            $this->execute("UPDATE seguro.propostas SET nr_apolice = 1000111236204, ds_identificador_seguradora = 9739295 WHERE id = 920858");

            $this->execute("INSERT
                              INTO seguro.proposta_boletos
                                 ( id_usuario_criacao
                                 , id_usuario_alteracao
                                 , dt_criacao
                                 , dt_alteracao
                                 , fl_ativo
                                 , fl_del
                                 , id_proposta
                                 , nr_parcela
                                 , nu_boleto
                                 , ds_identificador
                                 , fl_pago
                                 , dt_verificacao_pagamento
                                 , id_versao
                                 , vl_total
                                 , vl_subvencao_federal
                                 , vl_subvencao_estadual
                                 , dt_vencimento
                                 , vl_pago
                                 , vl_segurado
                                 )
                            SELECT
                                 ( id_usuario_criacao
                                 , id_usuario_alteracao
                                 , dt_criacao
                                 , dt_alteracao
                                 , fl_ativo
                                 , fl_del
                                 , id_proposta
                                 , nr_parcela
                                 , nu_boleto
                                 , ds_identificador
                                 , fl_pago
                                 , dt_verificacao_pagamento
                                 , id_versao
                                 , vl_total
                                 , vl_subvencao_federal
                                 , vl_subvencao_estadual
                                 , dt_vencimento
                                 , vl_pago
                                 , vl_segurado
                                 )
                              FROM manutencao.SR_46150_proposta_boletos
                             WHERE id_proposta IN (909661, 919767, 920858)");

            $this->execute("INSERT
                              INTO seguro.propostas_boletos_prorrogacoes
                                 ( id_usuario_criacao
                                 , id_usuario_alteracao
                                 , dt_criacao
                                 , dt_alteracao
                                 , fl_ativo
                                 , fl_del
                                 , id
                                 , id_proposta
                                 , nr_parcela
                                 , nu_boleto
                                 , id_versao
                                 , vl_total
                                 , vl_segurado
                                 , vl_juros
                                 , vl_multa
                                 , dt_vencimento
                                 , ds_nome_arquivo
                                 )
                            SELECT
                                 ( id_usuario_criacao
                                 , id_usuario_alteracao
                                 , dt_criacao
                                 , dt_alteracao
                                 , fl_ativo
                                 , fl_del
                                 , id
                                 , id_proposta
                                 , nr_parcela
                                 , nu_boleto
                                 , id_versao
                                 , vl_total
                                 , vl_segurado
                                 , vl_juros
                                 , vl_multa
                                 , dt_vencimento
                                 , ds_nome_arquivo
                                 )
                              FROM manutencao.SR_46150_propostas_boletos_prorrogacoes
                             WHERE id_proposta IN (909661, 919767, 920858)");

            //SEGUNDO CASO
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801411 WHERE id = 925273");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801431 WHERE id = 926445");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801443 WHERE id = 927074");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801466 WHERE id = 928198");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801474 WHERE id = 929186");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801488 WHERE id = 930445");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801494 WHERE id = 931767");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801502 WHERE id = 932482");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801509 WHERE id = 932885");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801508 WHERE id = 932868");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801510 WHERE id = 932993");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801511 WHERE id = 933562");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801515 WHERE id = 934120");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801514 WHERE id = 934118");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801519 WHERE id = 934999");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801492 WHERE id = 931458");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801527 WHERE id = 937750");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801528 WHERE id = 937794");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801504 WHERE id = 932774");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801534 WHERE id = 938413");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801497 WHERE id = 931775");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801539 WHERE id = 938709");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801467 WHERE id = 928237");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801526 WHERE id = 937156");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801547 WHERE id = 943124");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801503 WHERE id = 932668");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801496 WHERE id = 931773");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801531 WHERE id = 937918");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801473 WHERE id = 929063");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801541 WHERE id = 938929");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801543 WHERE id = 940218");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801409 WHERE id = 925238");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801535 WHERE id = 938611");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801439 WHERE id = 926819");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801487 WHERE id = 930316");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801546 WHERE id = 941553");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9801406 WHERE id = 924872");
            $this->execute("UPDATE seguro.propostas SET ds_identificador_seguradora = 9799131 WHERE id = 945445");

            $this->execute("INSERT
                              INTO seguro.proposta_boletos
                                 ( id_usuario_criacao
                                 , id_usuario_alteracao
                                 , dt_criacao
                                 , dt_alteracao
                                 , fl_ativo
                                 , fl_del
                                 , id_proposta
                                 , nr_parcela
                                 , nu_boleto
                                 , ds_identificador
                                 , fl_pago
                                 , dt_verificacao_pagamento
                                 , id_versao
                                 , vl_total
                                 , vl_subvencao_federal
                                 , vl_subvencao_estadual
                                 , dt_vencimento
                                 , vl_pago
                                 , vl_segurado
                                 )
                            SELECT
                                 ( id_usuario_criacao
                                 , id_usuario_alteracao
                                 , dt_criacao
                                 , dt_alteracao
                                 , fl_ativo
                                 , fl_del
                                 , id_proposta
                                 , nr_parcela
                                 , nu_boleto
                                 , ds_identificador
                                 , fl_pago
                                 , dt_verificacao_pagamento
                                 , id_versao
                                 , vl_total
                                 , vl_subvencao_federal
                                 , vl_subvencao_estadual
                                 , dt_vencimento
                                 , vl_pago
                                 , vl_segurado
                                 )
                              FROM manutencao.SR_46150_proposta_boletos
                             WHERE id_proposta IN ( 924872, 925238, 925273, 926445, 926819, 927074, 928198, 928237, 929063, 929186, 930316, 930445, 931458
                                                  , 931767, 931773, 931775, 932482, 932668, 932774, 932868, 932885, 932993, 933562, 934118, 934120, 934999
                                                  , 937156, 937750, 937794, 937918, 938413, 938611, 938709, 938929, 940218, 941553, 943124, 945445)");

            $this->execute("INSERT
                              INTO seguro.propostas_boletos_prorrogacoes
                                 ( id_usuario_criacao
                                 , id_usuario_alteracao
                                 , dt_criacao
                                 , dt_alteracao
                                 , fl_ativo
                                 , fl_del
                                 , id
                                 , id_proposta
                                 , nr_parcela
                                 , nu_boleto
                                 , id_versao
                                 , vl_total
                                 , vl_segurado
                                 , vl_juros
                                 , vl_multa
                                 , dt_vencimento
                                 , ds_nome_arquivo
                                 )
                            SELECT
                                 ( id_usuario_criacao
                                 , id_usuario_alteracao
                                 , dt_criacao
                                 , dt_alteracao
                                 , fl_ativo
                                 , fl_del
                                 , id
                                 , id_proposta
                                 , nr_parcela
                                 , nu_boleto
                                 , id_versao
                                 , vl_total
                                 , vl_segurado
                                 , vl_juros
                                 , vl_multa
                                 , dt_vencimento
                                 , ds_nome_arquivo
                                 )
                              FROM manutencao.SR_46150_propostas_boletos_prorrogacoes
                             WHERE id_proposta IN ( 924872, 925238, 925273, 926445, 926819, 927074, 928198, 928237, 929063, 929186, 930316, 930445, 931458
                                                  , 931767, 931773, 931775, 932482, 932668, 932774, 932868, 932885, 932993, 933562, 934118, 934120, 934999
                                                  , 937156, 937750, 937794, 937918, 938413, 938611, 938709, 938929, 940218, 941553, 943124, 945445)");
        }
    }
}
