<?php

use Phalcon\Mvc\Model\Migration;
class SigMigration_454 extends Migration
{
    public function up()
    {
        $this->down();

        self::$connection->execute("
            INSERT INTO jaga.app_config (kode, nilai, keterangan) VALUES ('SIG_GRANT_TYPE', 'client_credentials', 'Grant Type yg dipakai untuk call API Auth ke SIG');
            INSERT INTO jaga.app_config (kode, nilai, keterangan) VALUES ('SIG_CLIENT_ID', '8', 'Client ID yg dipakai untuk call API Auth ke SIG');
            INSERT INTO jaga.app_config (kode, nilai, keterangan) VALUES ('SIG_CLIENT_SECRET', 'mbwceSnWXPXXZKxdOflaR7EXuSvGTU9WeGlva8LY', 'Client Secret yg dipakai untuk call API Auth ke SIG');
        ");

        self::$connection->execute('
            CREATE TABLE IF NOT EXISTS "jaga"."sig_instansi"
            (
                id_instansi_gol BIGSERIAL PRIMARY KEY,
                id_instansi_jaga BIGINT,
                nama_instansi_gol VARCHAR(255)
            )
            WITH (
                OIDS = FALSE
            );
        ');


        $sql = file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . 'insert_instansi_gol.sql');
        self::$connection->execute($sql);

        self::$connection->execute("
            UPDATE jaga.sig_instansi si 
            SET id_instansi_jaga = ji.ID 
            FROM
            	jaga.instansi ji 
            WHERE
            	LOWER(TRIM(si.nama_instansi_gol)) = LOWER(TRIM(ji.nama))
            	OR (si.nama_instansi_gol = 'KEMENTERIAN INVESTASI/BKPM' AND ji.nama = 'Kementerian Investasi / Badan Koordinasi Penanaman Modal')
            	OR (si.nama_instansi_gol = 'Perpustakaan Nasional Republik Indonesia' AND ji.nama = 'Perpustakaan Nasional')
            	OR (si.nama_instansi_gol = 'PT Angkasa Pura I (Persero)' AND ji.nama = 'PT Angkasa Pura I')
            	OR (si.nama_instansi_gol = 'PT Angkasa Pura II (Persero)' AND ji.nama = 'PT Angkasa Pura II')
            	OR (si.nama_instansi_gol = 'Pemerintah Kabupaten Lima Puluh Kota' AND ji.nama = 'Pemerintah Lima Puluh Kota')
            	OR (si.nama_instansi_gol = 'Pemerintah Kabupaten Batang Hari' AND ji.nama = 'Pemerintah Kabupaten Batanghari')
            	OR (si.nama_instansi_gol = 'Pemerintah Kabupaten Tolitoli' AND ji.nama = 'Pemerintah Kabupaten Toli Toli')
            	OR (si.nama_instansi_gol = 'Pemerintah Kabupaten Pangkajene Dan Kepulauan' AND ji.nama = 'Pemerintah Kabupaten Pangkajene Kepulauan')
            	OR (si.nama_instansi_gol = 'Pemerintah Kabupaten Maluku Tenggara Barat' AND ji.nama = 'Pemerintah Kabupaten Kepulauan Tanimbar')
            	OR (si.nama_instansi_gol = 'Pemerintah Kabupaten Fakfak' AND ji.nama = 'Pemerintah Kabupaten Fak Fak')
            	OR (si.nama_instansi_gol = 'Pemerintah Kota Tanjungbalai' AND ji.nama = 'Pemerintah Kota Tanjung Balai')
            	OR (si.nama_instansi_gol = 'Pemerintah Kota Pematangsiantar' AND ji.nama = 'Pemerintah Kota Pematang Siantar')
            	OR (si.nama_instansi_gol = 'Pemerintah Kota Palangka Raya' AND ji.nama = 'Pemerintah Kota Palangkaraya')
            	OR (si.nama_instansi_gol = 'Pemerintah Kota Parepare' AND ji.nama = 'Pemerintah Kota Pare Pare')
            	OR (si.nama_instansi_gol = 'Pemerintah Provinsi D.I. Yogyakarta' AND ji.nama = 'Pemerintah Provinsi DI Yogyakarta')
            	OR (si.nama_instansi_gol = 'Kementerian Perencanaan Pembangunan Nasional/Badan Perencanaan Pembangunan Nasional' AND ji.nama = 'Kementerian Perencanaan Pembangunan Nasional /Bappenas')
            	OR (si.nama_instansi_gol = 'Pemerintah Kota Pagar Alam' AND ji.nama = 'Pemerintah Kota Pagaralam')
            	OR (si.nama_instansi_gol = 'Pemerintah Kota Lubuklinggau' AND ji.nama = 'Pemerintah Kota Lubuk Linggau')
            	OR (si.nama_instansi_gol = 'Pemerintah Kota Baubau' AND ji.nama = 'Pemerintah Kota Bau Bau')
            	OR (si.nama_instansi_gol = 'Pemerintah Kabupaten Mukomuko' AND ji.nama = 'Pemerintah Kabupaten Muko Muko')
            	OR (si.nama_instansi_gol = 'Pemerintah Kabupaten Tojo Una-Una' AND ji.nama = 'Pemerintah Kabupaten Tojo Una Una')
            	OR (si.nama_instansi_gol = 'Ombudsman Republik Indonesia' AND ji.nama = 'Ombudsman')
            	OR (si.nama_instansi_gol = 'Komisi Kejaksaan Republik Indonesia' AND ji.nama = 'Komisi Kejaksaan')
            	OR (si.nama_instansi_gol = 'Kejaksaan Agung Republik Indonesia' AND ji.nama = 'Kejaksaan Agung')
            	OR (si.nama_instansi_gol = 'Badan Search and Rescue Nasional' AND ji.nama = 'Badan Nasional Pencarian dan Pertolongan')
            	OR (si.nama_instansi_gol = 'Pemerintah Kota Gunung Sitoli' AND ji.nama = 'Pemerintah Kota Gunungsitoli')
            	OR (si.nama_instansi_gol = 'Kementerian Agraria Dan Tata Ruang/Badan Pertanahan Nasional' AND ji.nama = 'Kementerian Agraria dan Tata Ruang Republik Indonesia')
            	OR (si.nama_instansi_gol = 'Badan Keamanan Laut Republik Indonesia' AND ji.nama = 'Badan Keamanan Laut')
            	OR (si.nama_instansi_gol = 'Pemerintah Kota Pangkalpinang' AND ji.nama = 'Pemerintah Kota Pangkal Pinang')
	            OR (si.nama_instansi_gol = 'Universitas Negeri Jember' AND ji.nama = 'Universitas Jember')
	            OR (si.nama_instansi_gol = 'UIN Maulana Malik Ibrahim' AND ji.nama = 'Universitas Islam Negeri Maulana Malik Ibrahim')
	            OR (si.nama_instansi_gol = 'Badan Penyelenggara Jaminan Sosial Ketenagakerjaan' AND ji.nama = 'BPJS Ketenagakerjaan')
            	;
        ");
    }

    public function down()
    {
        self::$connection->execute('
            DROP TABLE IF EXISTS "jaga"."sig_instansi";
        ');

        self::$connection->execute("
            DELETE FROM jaga.app_config WHERE kode ILIKE 'SIG_%';
            SELECT setval(pg_get_serial_sequence('app_config', 'id'), coalesce(max(id),0) + 1, false) FROM jaga.app_config;
        ");
    }
}
