<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskSr45262 extends AbstractMigration
{
    public function up(): void
    {
        $rs = $this->fetchAll(<<<SQL
            SELECT
                sibp.fl_conta_conjunta,
                segib.id AS seguro_id_informacao_bancaria
            FROM
                seguro.propostas sp
            INNER JOIN seguro.propostas_proponentes spp
                ON spp.id_proposta = sp.id
            INNER JOIN seguro.propostas_endosso spe
                ON spe.id_proposta = sp.id
            INNER JOIN produto.produtos pp
                ON pp.id = sp.id_produto
            INNER JOIN seguro.informacoes_bancarias_propostas sibp
                ON sibp.id_proposta = sp.id_proposta_mae
            INNER JOIN sistema.informacoes_bancarias sib
                ON sib.id = sibp.id_informacoes_bancarias
            INNER JOIN seguro.informacoes_bancarias segib
                ON segib.id_proposta = sp.id
                    AND segib.cpf_cnpj = spp.cpf_cnpj
            WHERE
                 sp.id_proposta_mae = sp.id  
                 AND spe.fl_proposta_vigente = TRUE
                 AND sibp.fl_conta_conjunta IS TRUE
SQL);

        foreach ($rs as $row) {
            $this->execute("
                UPDATE seguro.informacoes_bancarias
                SET fl_conta_conjunta = TRUE
                WHERE id = {$row['seguro_id_informacao_bancaria']}
            ");
        }
    }

    public function down(): void
    {
        return;
    }
}
