<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskINC44739 extends AbstractMigration
{
    public function up(): void
    {
        $idEndosso = $this->getEndosso();

        $this->execute(<<<SQL
UPDATE seguro.propostas_corretores SET vl_comissao = 15.75 WHERE id_proposta in(866375, {$idEndosso});
SQL
);
    }

    public function down(): void
    {
        $idEndosso = $this->getEndosso();

        $this->execute(<<<SQL
UPDATE seguro.propostas_corretores SET vl_comissao = null WHERE id_proposta in(866375, {$idEndosso});
SQL
        );
    }

    private function getEndosso()
    {
        $sql = "SELECT max(spe.id_proposta) as id_proposta ";
        $sql .= " FROM seguro.propostas sp ";
        $sql .= "      INNER JOIN seguro.propostas_endosso spe ON spe.id_endosso = sp.id_endosso ";
        $sql .= "WHERE sp.id = 866375 ";
        $sql .= "GROUP BY id_proposta ";
        $sql .= "ORDER BY id_proposta desc ";

        $row = $this->fetchRow($sql);
        return $row['id_proposta'];
    }
}
