<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskVsdV3 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute(<<<SQL
            ALTER TABLE sinistro.laudos_finais_itens_segurados ALTER COLUMN vl_area_medicao TYPE NUMERIC(12,2);
            ALTER TABLE sinistro.laudos_finais_itens_segurados ALTER COLUMN vl_area_vistoriada TYPE NUMERIC(12,2);
            ALTER TABLE sinistro.laudos_finais_itens_segurados ALTER COLUMN vl_area_resta_avaliar TYPE NUMERIC(12,2);
            ALTER TABLE sinistro.laudos_finais_itens_segurados ALTER COLUMN vl_altitude TYPE NUMERIC(12,2);
            ALTER TABLE sinistro.laudos_finais_itens_segurados ALTER COLUMN vl_area_declarada TYPE NUMERIC(12,2);
            ALTER TABLE regulacao.lf003_itens_segurados_amostras ALTER COLUMN vl_m2_perda_colheita TYPE NUMERIC(12,2);
            ALTER TABLE regulacao.lf003_itens_segurados_amostras ALTER COLUMN vl_producao_perdida_colheita TYPE NUMERIC(14,4);
            ALTER TABLE regulacao.lf034_itens_segurados_amostras ALTER COLUMN vl_m2_perda_colheita TYPE NUMERIC(12,2);
            ALTER TABLE regulacao.lf034_itens_segurados_amostras ALTER COLUMN vl_producao_perdida_colheita TYPE NUMERIC(14,4);
            ALTER TABLE regulacao.lf003_itens_segurados ALTER COLUMN vl_percentual_graos_avariados TYPE NUMERIC(12,2);
            ALTER TABLE regulacao.lf034_itens_segurados ALTER COLUMN vl_percentual_graos_avariados TYPE NUMERIC(12,2);
            ALTER TABLE sinistro.laudos_finais_itens_segurados DROP COLUMN vl_area_colhidos_antes_vistoria;
            ALTER TABLE regulacao.lf003_itens_segurados_amostras ALTER COLUMN vl_producao_liquida TYPE NUMERIC(13, 2);
            ALTER TABLE regulacao.lf034_itens_segurados_amostras ALTER COLUMN vl_producao_liquida TYPE NUMERIC(13, 2);
SQL
        );
    }

    public function down(): void
    {
        $this->execute(<<<SQL
            ALTER TABLE sinistro.laudos_finais_itens_segurados ADD COLUMN vl_area_colhidos_antes_vistoria NUMERIC(6,2);
            ALTER TABLE sinistro.laudos_finais_itens_segurados ALTER COLUMN vl_area_medicao TYPE NUMERIC(6,2);
            ALTER TABLE sinistro.laudos_finais_itens_segurados ALTER COLUMN vl_area_vistoriada TYPE NUMERIC(6,2);
            ALTER TABLE sinistro.laudos_finais_itens_segurados ALTER COLUMN vl_area_resta_avaliar TYPE NUMERIC(6,2);
            ALTER TABLE sinistro.laudos_finais_itens_segurados ALTER COLUMN vl_altitude TYPE NUMERIC(6,2);
            ALTER TABLE sinistro.laudos_finais_itens_segurados ALTER COLUMN vl_area_declarada TYPE NUMERIC(6,2);
            ALTER TABLE regulacao.lf003_itens_segurados_amostras ALTER COLUMN vl_m2_perda_colheita TYPE NUMERIC(6,2);
            ALTER TABLE regulacao.lf003_itens_segurados_amostras ALTER COLUMN vl_producao_perdida_colheita TYPE NUMERIC(6,4);
            ALTER TABLE regulacao.lf034_itens_segurados_amostras ALTER COLUMN vl_m2_perda_colheita TYPE NUMERIC(6,2);
            ALTER TABLE regulacao.lf034_itens_segurados_amostras ALTER COLUMN vl_producao_perdida_colheita TYPE NUMERIC(6,4);
            ALTER TABLE regulacao.lf003_itens_segurados ALTER COLUMN vl_percentual_graos_avariados TYPE NUMERIC(6,2);
            ALTER TABLE regulacao.lf034_itens_segurados ALTER COLUMN vl_percentual_graos_avariados TYPE NUMERIC(6,2);
            ALTER TABLE regulacao.lf003_itens_segurados_amostras ALTER COLUMN vl_producao_liquida TYPE NUMERIC(10, 2);
            ALTER TABLE regulacao.lf034_itens_segurados_amostras ALTER COLUMN vl_producao_liquida TYPE NUMERIC(10, 2);
SQL
        );
    }
}
