<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2112301256 extends AbstractMigration
{
    public function up(): void
    {
        $this->upNovaTabela();
        $this->upDadosTabela();
    }

    private function upNovaTabela()
    {
        $this->execute(<<<SQL
CREATE TABLE regulacao.fator_correcao_rendimento_final (
  id SERIAL NOT NULL,
  id_estadio_fenologico INT NOT NULL,
  vl_percentual_fator_correcao NUMERIC(12, 2) NOT NULL,
  CONSTRAINT pk_fator_correcao_rendimento_final PRIMARY KEY (id),
  CONSTRAINT fk_fator_correcao_rendimento_final_estadio_fenologico FOREIGN KEY (id_estadio_fenologico) REFERENCES produto.estadios_fenologicos (id)
) INHERITS (public.campos_default);
SQL
        );
    }

    private function upDadosTabela()
    {
        $this->execute(<<<SQL
INSERT INTO regulacao.fator_correcao_rendimento_final (id_estadio_fenologico, vl_percentual_fator_correcao) VALUES (334, 0);
INSERT INTO regulacao.fator_correcao_rendimento_final (id_estadio_fenologico, vl_percentual_fator_correcao) VALUES (335, 10);
INSERT INTO regulacao.fator_correcao_rendimento_final (id_estadio_fenologico, vl_percentual_fator_correcao) VALUES (336, 20);
INSERT INTO regulacao.fator_correcao_rendimento_final (id_estadio_fenologico, vl_percentual_fator_correcao) VALUES (337, 35);
INSERT INTO regulacao.fator_correcao_rendimento_final (id_estadio_fenologico, vl_percentual_fator_correcao) VALUES (338, 65);
SQL
        );
    }

    public function down(): void
    {
        $this->execute(<<<SQL
DROP TABLE regulacao.fator_correcao_rendimento_final;
SQL
);
    }
}
