<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

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

    private function upNovaTabela()
    {
    $this->execute(<<<SQL
CREATE TABLE sinistro.solicitacao_antecipacao_pagamento (
    id SERIAL,
    id_processo_sinistro INTEGER NOT NULL,
    id_liquidacao INTEGER NOT NULL,
    id_usuario_criacao INTEGER,
    id_usuario_alteracao INTEGER,
    dt_solicitacao TIMESTAMP,
    dt_base_pagamento DATE,
    id_status_liquidacao INTEGER,
    ds_justificativa TEXT,
    fl_ativo BOOLEAN NOT NULL DEFAULT TRUE,
    fl_del BOOLEAN NOT NULL DEFAULT TRUE,
    CONSTRAINT pk_solicitacao_antecipacao_pagamento PRIMARY KEY(id),
    CONSTRAINT fk_processo FOREIGN KEY(id_processo_sinistro) REFERENCES sinistro.processos(id),
    CONSTRAINT fk_liquidacao FOREIGN KEY(id_liquidacao) REFERENCES sinistro.liquidacoes(id)
) INHERITS (public.campos_default);
SQL
    );
    
    $this->execute(<<<SQL
ALTER TABLE sinistro.relatorio_importacao_indenizacao ADD COLUMN ds_incluiu_antecipacoes BOOLEAN DEFAULT FALSE, ADD COLUMN ds_ids_liquidacoes_antecipacoes TEXT;
SQL
    );

    $this->execute(<<<SQL
INSERT INTO sistema.acao (
    id_usuario_criacao,
    id_usuario_alteracao,
    dt_criacao,
    dt_alteracao,
    fl_ativo,
    fl_del,
    ds_label,
    ds_module,
    ds_controller,
    ds_action,
    ds_param,
    id_parent,
    ds_image,
    nr_ordem,
    ds_nome,
    ds_descricao,
    fl_tipo,
    fl_somente_responsavel
) VALUES (
    4732,
    NULL,
    '2025-09-19 11:36:31-03',
    NULL,
    TRUE,
    FALSE,
    'Busca informações solicitações antecipação pagamento',
    'sinistro2',
    'liquidacao',
    'buscahistoricoantecipacoespagamento',
    NULL,
    1638,
    NULL,
    1359,
    NULL,
    'Pagamentos de indenização para identificação de Crédito',
    'A',
    FALSE
);

INSERT INTO sistema.roles_acao (
  id_usuario_criacao,
  id_usuario_alteracao,
  dt_criacao,
  dt_alteracao,
  fl_ativo,
  fl_del,
  id_role,
  id_acao,
  fl_permitido
) VALUES (
  4732, 
  NULL, 
  '2025-10-07 13:41:39-03',
  NULL,
  't',
  'f',
  16,
  currval('sistema.acao_id_seq'),
  't'
);
SQL);
    }
    public function down(): void
    {
        $this->execute(<<<SQL
drop table sinistro.solicitacao_antecipacao_pagamento;
SQL);
        $this->execute(<<<SQL
ALTER TABLE sinistro.relatorio_importacao_indenizacao
DROP COLUMN ds_incluiu_antecipacoes,
DROP COLUMN ds_ids_liquidacoes_antecipacoes;
SQL
    );
        $this->execute(<<<SQL
DELETE FROM sistema.acao
WHERE ds_label = 'Busca informações solicitações antecipação pagamento'
  AND ds_module = 'sinistro2'
  AND ds_controller = 'liquidacao'
  AND ds_action = 'buscahistoricoantecipacoespagamento';
SQL
);
    }

}

