<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;


final class Task2104302028 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute("
        CREATE OR REPLACE VIEW produto.v_limite_capacidade_utilizado_resumido
        AS
        SELECT DISTINCT validacoes_limites_capacidade.id_usuario_criacao,
            validacoes_limites_capacidade.id_usuario_alteracao,
            validacoes_limites_capacidade.dt_criacao,
            validacoes_limites_capacidade.dt_alteracao,
            validacoes_limites_capacidade.fl_ativo,
            validacoes_limites_capacidade.fl_del,
            validacoes_limites_capacidade.id,
            validacoes_limites_capacidade.ds_nome_grupo,
            validacoes_limites_capacidade.vl_limite_capacidade,
            validacoes_limites_capacidade.fl_agrupar_municipios,
            validacoes_limites_capacidade.fl_limite_corretor,
            validacoes_limites_capacidade.tipo_corretor_vinculo,
            validacoes_limites_capacidade.id_parent,
            validacoes_limites_capacidade_produtos.id_safra,
            0 as count_parent
        FROM (produto.validacoes_limites_capacidade
            JOIN ( SELECT validacoes_limites_capacidade_produtos_1.id_grupo_limite_capacidade,
                    produtos.id_safra
                FROM (((produto.validacoes_limites_capacidade_produtos validacoes_limites_capacidade_produtos_1
                    JOIN produto.produtos ON ((produtos.id = validacoes_limites_capacidade_produtos_1.id_produto)))
                    JOIN produto.produtos_geral ON ((produtos_geral.id = produtos.id_produto_geral)))
                    JOIN produto.culturas ON ((culturas.id = produtos_geral.id_cultura)))
                GROUP BY validacoes_limites_capacidade_produtos_1.id_grupo_limite_capacidade, produtos.id_safra
                ORDER BY validacoes_limites_capacidade_produtos_1.id_grupo_limite_capacidade) validacoes_limites_capacidade_produtos ON ((validacoes_limites_capacidade_produtos.id_grupo_limite_capacidade = validacoes_limites_capacidade.id)))
        WHERE (1 = 1)
        ORDER BY validacoes_limites_capacidade.ds_nome_grupo;
        ");
    }

    public function down(): void
    {
        $this->execute("DROP VIEW produto.v_limite_capacidade_utilizado_resumido");
    }

}
