<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2401301825 extends AbstractMigration
{
    public function up(): void
    {

        $rs = $this->fetchAll(<<<SQL
            SELECT
                sa.id as id_aviso,
                sva.id_vistoria
            FROM
                sinistro.avisos sa
            INNER JOIN sinistro.vistorias_avisos sva
                ON sva.id_aviso = sa.id
            WHERE
                fl_dispensa_preliminar IS TRUE
SQL);

        $valuesLog = $separator = '';

        foreach ($rs as $row) {
            $valuesLog .= "{$separator} (2068, 'Aviso {$row['id_aviso']} foi desvinculado da vistoria {$row['id_vistoria']}')";
            $separator = ',';
        }

        $this->execute(<<<SQL
            INSERT INTO log.log_sinistro_processo (id_usuario_criacao, ds_log)
                VALUES {$valuesLog}
SQL);

        $this->execute(<<<SQL
            DELETE FROM sinistro.vistorias_avisos
                WHERE id_aviso IN (
                    SELECT
                        sa.id
                    FROM
                        sinistro.avisos sa
                    INNER JOIN sinistro.vistorias_avisos sva
                        ON sva.id_aviso = sa.id
                    WHERE
                        fl_dispensa_preliminar IS TRUE
                );
SQL
);
    }

    public function down(): void
    {

    }
}
