<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2308251444 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute(<<<SQL
            CREATE TEMP TABLE propostas_manuais_tmp AS (
                SELECT pr.id AS id_proposta 
                  FROM seguro.propostas pr 
                  JOIN seguro.propostas_documento_digitalizado pdd ON pdd.id_proposta = pr.id 
                  LEFT JOIN seguro.propostas_tipo_assinatura_documento ptad ON ptad.id_proposta = pr.id
                 WHERE ptad.id is null 
                    OR (ptad.fl_ativo is true AND tipo_assinatura = 4) 
                 GROUP BY pr.id
                 ORDER BY pr.id
            );

            UPDATE seguro.propostas_tipo_assinatura_documento 
               SET fl_ativo = 'f' 
             WHERE fl_ativo is true 
               AND id_proposta IN (SELECT id_proposta FROM propostas_manuais_tmp);

            INSERT INTO seguro.propostas_tipo_assinatura_documento(id_usuario_criacao, dt_criacao, id_proposta, tipo_assinatura)
                SELECT 2068, now(), id_proposta, 3 FROM propostas_manuais_tmp;
SQL
        );
    }

    public function down(): void{}
}
