<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2009181247 extends AbstractMigration
{
    public function up(): void
    {
        $this->upDDL();
        $this->execute(<<<SQL
INSERT INTO sistema.acao (ds_label, ds_module, ds_controller, ds_action, ds_param, id_parent, ds_image, ds_descricao, fl_tipo, dt_criacao, id_usuario_criacao, id) VALUES ('Limpar Dispositivo', 'sistema', 'usuario', 'limpardispositivo', '', 11, '', 'Limpar o dispositivo vinculado ao usuário.', 'A', '2020-10-01 11:24:51', 3379, nextval('sistema.acao_id_seq'::regclass));
SQL
);
    }

    public function down(): void
    {
        $this->downDDL();
        $this->execute(<<<SQL
DELETE FROM sistema.acao WHERE  ds_module = 'sistema' and ds_controller = 'usuario' and ds_action = 'limpardispositivo';
SQL
        );
    }

    private function upDDL()
    {
        $this->execute(<<<SQL
CREATE TABLE log.log_alteracao_device_vp (
    id SERIAL NOT NULL,
    id_usuario INTEGER NOT NULL,
    deviceid VARCHAR(60) NOT NULL,

    CONSTRAINT pk_log_alteracao_device_vp PRIMARY KEY (id),
    CONSTRAINT fk_log_alteracao_device_vp_usuarios FOREIGN KEY (id_usuario) REFERENCES sistema.usuarios (id)
)
INHERITS (public.campos_default);
SQL
);
    }

    private function downDDL()
    {
        $this->execute(<<<SQL
drop table log.log_alteracao_device_vp;
SQL
        );
    }
}
