<?php

use Phalcon\Mvc\Model\Migration;

class LogPpjMigration_395 extends Migration
{
    public function up()
    {
        $this->down();
        self::$connection->execute("
            CREATE TABLE IF NOT EXISTS jaga.log_ppj_errors
            (
                id bigserial primary key,
                kabupaten_kota_code character varying(5) NOT NULL,
                instansi character varying(255) NOT NULL,
                periode integer NOT NULL,
                retry_count smallint NOT NULL,
                created_at timestamp(6) DEFAULT now(),
                updated_at timestamp(6),
                deleted_at timestamp(6)
            )
        ");

        self::$connection->execute("
            CREATE INDEX IF NOT EXISTS idx_log_ppj_errors_kabupaten_kota_code ON log_ppj_errors USING btree (kabupaten_kota_code);
            CREATE INDEX IF NOT EXISTS idx_log_ppj_errors_periode ON log_ppj_errors USING btree (periode);
        ");

        self::$connection->execute("
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9107', 'Pemerintah Kabupaten Puncak Jaya', 0, 202203);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9123', 'Pemerintah Kabupaten Lanny Jaya', 0, 202203);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9125', 'Pemerintah Kabupaten Puncak', 0, 202203);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9127', 'Pemerintah Kabupaten Intan Jaya', 0, 202203);

            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('1671', 'Pemerintah Kota Palembang', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('1709', 'Pemerintah Kabupaten Bengkulu Tengah', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('1801', 'Pemerintah Kabupaten Lampung Selatan', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('2102', 'Pemerintah Kabupaten Karimun', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('3328', 'Pemerintah Kabupaten Tegal', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('3571', 'Pemerintah Kota Kediri', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('5306', 'Pemerintah Kabupaten Flores Timur', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('6171', 'Pemerintah Kota Pontianak', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('7102', 'Pemerintah Kabupaten Minahasa', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('7212', 'Pemerintah Kabupaten Morowali Utara', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('7408', 'Pemerintah Kabupaten Kolaka Utara', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9107', 'Pemerintah Kabupaten Puncak Jaya', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9114', 'Pemerintah Kabupaten Tolikara', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9116', 'Pemerintah Kabupaten Boven Digoel', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9123', 'Pemerintah Kabupaten Lanny Jaya', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9125', 'Pemerintah Kabupaten Puncak', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9127', 'Pemerintah Kabupaten Intan Jaya', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9171', 'Pemerintah Kota Jayapura', 0, 202204);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9211', 'Pemerintah Kabupaten Manokwari Selatan', 0, 202204);

            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('1671', 'Pemerintah Kota Palembang', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('1709', 'Pemerintah Kabupaten Bengkulu Tengah', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('1801', 'Pemerintah Kabupaten Lampung Selatan', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('2102', 'Pemerintah Kabupaten Karimun', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('3328', 'Pemerintah Kabupaten Tegal', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('3571', 'Pemerintah Kota Kediri', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('5306', 'Pemerintah Kabupaten Flores Timur', 1, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('6171', 'Pemerintah Kota Pontianak', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('7102', 'Pemerintah Kabupaten Minahasa', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('7212', 'Pemerintah Kabupaten Morowali Utara', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('7408', 'Pemerintah Kabupaten Kolaka Utara', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9107', 'Pemerintah Kabupaten Puncak Jaya', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9114', 'Pemerintah Kabupaten Tolikara', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9116', 'Pemerintah Kabupaten Boven Digoel', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9125', 'Pemerintah Kabupaten Puncak', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9127', 'Pemerintah Kabupaten Intan Jaya', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9171', 'Pemerintah Kota Jayapura', 0, 202205);
            INSERT INTO jaga.log_ppj_errors (kabupaten_kota_code, instansi, retry_count, periode) VALUES ('9211', 'Pemerintah Kabupaten Manokwari Selatan', 0, 202205);
        ");

        self::$connection->execute("
            CREATE TABLE IF NOT EXISTS jaga.app_config
            (
                id serial primary key,
                kode character varying(100) NOT NULL,
                nilai character varying(100) NOT NULL,
                keterangan character varying(255) NOT NULL,
                created_at timestamp(6) DEFAULT now(),
                updated_at timestamp(6),
                deleted_at timestamp(6)
            );

            INSERT INTO jaga.app_config (kode, nilai, keterangan) VALUES ('MAX_RETRY_ERROR_PPJ', '14', 'Jumlah maksimum percobaan penarikan ulang data PPJ pada table log_ppj_errors');
            INSERT INTO jaga.app_config (kode, nilai, keterangan) VALUES ('OMSPAN_PENYERAPAN_2021', 'false', 'Flag penarikan data Penyerapan Dana Desa tahun 2021 melalui Scheduled Task');
            INSERT INTO jaga.app_config (kode, nilai, keterangan) VALUES ('OMSPAN_PENYALURAN_LAST_PERIOD_2021', '06', 'Periode akhir penarikan Penyaluran Dana Desa tahun 2021 melalui Scheduled Task');
        ");
    }

    public function down()
    {
        self::$connection->execute("DROP TABLE IF EXISTS jaga.log_ppj_errors");
        self::$connection->execute("
            DROP INDEX IF EXISTS idx_log_ppj_errors_kabupaten_kota_code;
            DROP INDEX IF EXISTS idx_log_ppj_errors_periode;
        ");
        self::$connection->execute("DROP TABLE IF EXISTS jaga.app_config");
    }
}
