<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2102031142 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute("ALTER TABLE sistema.tipo_arquivo_processo ADD COLUMN id_tipo_documento_seguradora INTEGER");

        $this->execute("UPDATE sistema.tipo_arquivo_processo SET id_tipo_documento_seguradora = 8 WHERE id IN (4,5,6,7,8,9,10,11,12,13,14,16,20)");

        $this->execute("UPDATE sistema.tipo_arquivo_processo SET id_tipo_documento_seguradora = 3 WHERE id = 1");

        $this->execute("UPDATE sistema.tipo_arquivo_processo SET id_tipo_documento_seguradora = 2 WHERE id = 2");

        $this->execute("UPDATE sistema.tipo_arquivo_processo SET id_tipo_documento_seguradora = 14 WHERE id = 3");

        $this->execute("UPDATE sistema.tipo_arquivo_processo SET id_tipo_documento_seguradora = 9 WHERE id = 15");

        $this->execute("UPDATE sistema.tipo_arquivo_processo SET id_tipo_documento_seguradora = 6 WHERE id = 17");

        $this->execute("UPDATE sistema.tipo_arquivo_processo SET id_tipo_documento_seguradora = 4 WHERE id = 18");

        $this->execute("UPDATE sistema.tipo_arquivo_processo SET id_tipo_documento_seguradora = 14 WHERE id = 19");

        $this->execute("CREATE table log.log_sinistro_arquivos_transmissao (
	                        id SERIAL,
	                        id_processo INTEGER NOT NULL,
	                        id_arquivo INTEGER NOT NULL,
	                        id_documento_seguradora INTEGER NOT NULL,
	                        ds_mensagem VARCHAR(100),
                            CONSTRAINT pk_sinistro_arquivos_transmissao PRIMARY KEY (id),
                            CONSTRAINT fk_sinistro_arquivos_transmissao FOREIGN KEY (id_processo) REFERENCES sinistro.processos (id)
                        ) INHERITS (public.campos_default)
                        WITH ( OIDS = FALSE )"
                    );

        $this->execute("INSERT INTO sistema.acao (
                            ds_label, 
                            ds_module, 
                            ds_controller, 
                            ds_action, 
                            ds_param, 
                            id_parent, 
                            ds_image, 
                            ds_descricao, 
                            fl_tipo, 
                            id
                        ) VALUES (
                            'Lista Log de Arquivo de Processos', 
                            'sinistro2', 
                            'processo', 
                            'listarquivolog', 
                            '', 
                            1597, 
                            '', 
                            'Lista Log de Arquivo de Processos', 
                            'A', 
                            nextval('sistema.acao_id_seq'::regclass)
                        )"
                    );                    
    }

    public function down(): void
    {
        $this->execute("ALTER TABLE sistema.tipo_arquivo_processo DROP COLUMN id_tipo_documento_seguradora");

        $this->execute("DROP TABLE log.log_sinistro_arquivos_transmissao");

        $this->execute("DELETE FROM sistema.acao 
                        WHERE ds_module = 'sinistro2'
                          AND ds_controller = 'processo'
                          AND ds_action = 'listarquivolog'
                    ");
    }
}
