<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2104231741 extends AbstractMigration
{
    public function up(): void
    {
        $this->upAtributo();
        $this->upPropostasCorretores();
    }

    private function upAtributo()
    {
        $this->execute(<<<SQL
INSERT INTO produto.atributos_rn (
              id_atributo_modulo, 
              ds_chave_rn, 
              ds_descricao_atributo, 
              fl_permite_exclusao,
              id_tipo_atributo,
              ds_ordem
            )
     VALUES (
              1, 
              'PROD_COMISSAO_MINIMA', 
              'Comissão Mínima', 
              false,
              6,
              223
            );
SQL
        );
    }

    private function upPropostasCorretores()
    {
        $this->execute(<<<SQL
ALTER TABLE seguro.propostas_corretores ADD COLUMN fl_dispensa_comissao_minima BOOLEAN DEFAULT FALSE;
SQL
        );
    }

    public function down(): void
    {
        $this->downAtributo();
        $this->downPropostasCorretores();
    }

    private function downAtributo()
    {
        $this->execute(<<<SQL
DELETE FROM produto.atributos_rn WHERE id_atributo_modulo = 1 AND ds_chave_rn = 'PROD_COMISSAO_MINIMA';
SQL
        );
    }

    private function downPropostasCorretores()
    {
        $this->execute(<<<SQL
ALTER TABLE seguro.propostas_corretores DROP COLUMN fl_dispensa_comissao_minima;
SQL
        );
    }
}
