<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskInc47184 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute("CREATE TABLE manutencao.materialized_views (
                            dt_criacao      DATE            NOT NULL,
                            id              SERIAL          NOT NULL,
                            migration_name  VARCHAR(100)    NOT NULL,
                            ordem           INTEGER         NOT NULL,
                            schemaname      VARCHAR(20)     NOT NULL,
                            matviewname     VARCHAR(100)    NOT NULL,
                            dt_ultima_atualizacao TIMESTAMP WITHOUT TIME ZONE
                        )
                      ");
        $table = $this->table('manutencao.materialized_views');
        $rows = [
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' =>  1, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_sinistralidadepg'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' =>  2, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_sinistralidadepg_itens_segurados'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' =>  3, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_processos'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' =>  4, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_sinistralidade_itens_segurados_vistorias'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' =>  5, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_sinistralidade'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' =>  6, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_liquidacoes_item'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' =>  7, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_vistorias_preliminares'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' =>  8, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_vistorias_preliminares_itens_segurados'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' =>  9, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_vistorias_preliminares_nao_sinistrados'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' => 10, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_propostas_canceladas_propostas'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' => 11, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_propostas_canceladas_parcela_restituicao'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' => 12, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_propostas_canceladas_parcela_cobranca'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' => 13, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_propostas_canceladas_sumario_parcelas'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' => 14, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_propostas_canceladas'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' => 15, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_vendas_premio_adicional'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' => 16, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_vendas_premio_pago_segurado'],
                   ['dt_criacao' => '2024-05-27', 'migration_name' => 'TaskReservasV7'  , 'ordem' => 17, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_vendas_sumario_parcelas'],
                   ['dt_criacao' => '2023-10-24', 'migration_name' => 'TaskReservasV2'  , 'ordem' => 18, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_vendas'],
                   ['dt_criacao' => '2024-02-06', 'migration_name' => 'Task2310311240v2', 'ordem' => 19, 'schemaname' => 'seguro' , 'matviewname' => 'proposta_area_item_segurado'],
                   ['dt_criacao' => '2024-05-06', 'migration_name' => 'TaskSr43639'     , 'ordem' => 20, 'schemaname' => 'geo'    , 'matviewname' => 'v_subscricao'],
                   ['dt_criacao' => '2024-05-06', 'migration_name' => 'TaskSr43639'     , 'ordem' => 21, 'schemaname' => 'geo'    , 'matviewname' => 'v_subscricao_coordenadas'],
                   ['dt_criacao' => '2024-05-06', 'migration_name' => 'TaskReservasV3'  , 'ordem' => 22, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_sinistralidade_itens_segurados'],
                   ['dt_criacao' => '2024-05-22', 'migration_name' => 'TaskReservasV6'  , 'ordem' => 23, 'schemaname' => 'sumario', 'matviewname' => 'relatorio_sinistralidade_processada']
                   
        ];
        $table->insert($rows)
              ->save();
    }

    public function down(): void
    {
        $this->table('manutencao.materialized_views')
             ->drop()
             ->save();
    }
}
