<?php

class GroupingProdukDiskusiMigration_493 extends \Phalcon\Mvc\Model\Migration {
    public function up()
    {
        self::$connection->execute("
            ALTER TABLE jaga.produk ADD COLUMN IF NOT EXISTS produk_group varchar(255);
        ");

        self::$connection->execute("
            UPDATE jaga.produk SET produk_group = 'JENDELA_PENCEGAHAN' WHERE id_index IN (10, 11, 12, 13, 14, 16);
            UPDATE jaga.produk SET produk_group = 'PELAYANAN_PUBLIK' WHERE id_index IN (2, 3, 4, 5, 6, 15);
            UPDATE jaga.produk SET produk_group = 'CHALLENGE' WHERE id_index IN (17, 18, 19);
        ");

        self::$connection->execute("
            UPDATE jaga.produk SET nama = substring(nama FROM 'Jendela Daerah - (.+)') WHERE nama LIKE 'Jendela Daerah - %';

            UPDATE jaga.produk SET nama = 'Pendidikan - Sekolah' WHERE nama = 'Pendidikan';
            UPDATE jaga.produk SET nama = 'Pendidikan - Kampus' WHERE nama = 'Pendidikan - Universitas';
            UPDATE jaga.produk SET nama = 'Stranas PK' WHERE nama = 'Stranas';
            UPDATE jaga.produk SET nama = 'Fasilitas Kesehatan' WHERE nama = 'Kesehatan';
        ");

        self::$connection->execute("
            UPDATE jaga.produk SET sort_order = sort_order + 1 WHERE sort_order >= 3 AND sort_order <= 14;
            UPDATE jaga.produk SET sort_order = 3 WHERE nama = 'Pendidikan - Kampus';
        ");

        self::$connection->execute("
            UPDATE jaga.produk SET is_show = 0 WHERE id_index = 14;
        ");

        self::$connection->execute("
            INSERT INTO jaga.produk (id_index, nama, icon, is_active, sort_order, is_show, produk_group) VALUES ('20', 'Pelabuhan', 'http://a.a.com', 't', '20', '1', 'PELAYANAN_PUBLIK');
            INSERT INTO jaga.produk (id_index, nama, icon, is_active, sort_order, is_show, produk_group) VALUES ('21', 'Penanganan Covid-19', 'http://a.a.com', 't', '21', '1', 'PELAYANAN_PUBLIK');
            INSERT INTO jaga.produk (id_index, nama, icon, is_active, sort_order, is_show, produk_group) VALUES ('22', 'PBJT-TL', 'http://a.a.com', 't', '22', '1', 'PELAYANAN_PUBLIK');
            INSERT INTO jaga.produk (id_index, nama, icon, is_active, sort_order, is_show, produk_group) VALUES ('23', 'Anggaran', 'http://a.a.com', 't', '23', '1', 'PELAYANAN_PUBLIK');
            SELECT setval(pg_get_serial_sequence('produk', 'id_index'), coalesce(max(id_index),0) + 1, false) FROM jaga.produk;
            
            INSERT INTO jaga.kategori_diskusi (title, produk_id) VALUES ('Pelabuhan', '20');
            INSERT INTO jaga.kategori_diskusi (title, produk_id) VALUES ('Penanganan Covid-19', '21');
            INSERT INTO jaga.kategori_diskusi (title, produk_id) VALUES ('PBJT-TL', '22');
            INSERT INTO jaga.kategori_diskusi (title, produk_id) VALUES ('Anggaran', '23');
            SELECT setval(pg_get_serial_sequence('kategori_diskusi', 'id'), coalesce(max(id),0) + 1, false) FROM jaga.kategori_diskusi;
        ");

        self::$connection->execute("
            UPDATE jaga.produk SET sort_order = sort_order + 1 WHERE sort_order >= 4 AND sort_order <= 19;
            UPDATE jaga.produk SET sort_order = 4 WHERE nama = 'Pelabuhan';

            UPDATE jaga.produk SET sort_order = sort_order + 1 WHERE sort_order >= 5 AND sort_order <= 7;
            UPDATE jaga.produk SET sort_order = 5 WHERE nama = 'Desa';
        ");
    }

    public function down()
    {
        self::$connection->execute("
            UPDATE jaga.produk SET sort_order = sort_order - 1 WHERE sort_order >= 6 AND sort_order <= 8;
            UPDATE jaga.produk SET sort_order = 8 WHERE nama = 'Desa';

            UPDATE jaga.produk SET sort_order = sort_order - 1 WHERE sort_order >= 5 AND sort_order <= 20;
            UPDATE jaga.produk SET sort_order = 20 WHERE nama = 'Pelabuhan';
        ");

        self::$connection->execute("
            DELETE FROM jaga.kategori_diskusi WHERE produk_id IN (20, 21, 22, 23);
            SELECT setval(pg_get_serial_sequence('kategori_diskusi', 'id'), coalesce(max(id),0) + 1, false) FROM jaga.kategori_diskusi;
            DELETE FROM jaga.produk WHERE id_index IN (20, 21, 22, 23);
            SELECT setval(pg_get_serial_sequence('produk', 'id_index'), coalesce(max(id_index),0) + 1, false) FROM jaga.produk;
        ");

        self::$connection->execute("
            UPDATE jaga.produk SET is_show = 1 WHERE id_index = 14;
        ");

        self::$connection->execute("
            UPDATE jaga.produk SET sort_order = sort_order - 1 WHERE sort_order >= 4 AND sort_order <= 15;
            UPDATE jaga.produk SET sort_order = 15 WHERE nama = 'Pendidikan - Kampus';
        ");

        self::$connection->execute("
            UPDATE jaga.produk SET nama = 'Jendela Daerah - ' || nama WHERE nama IN ('Koordinasi Wilayah', 'E-LHKPN', 'Gratifikasi', 'SPI', 'Jejak kasus');

            UPDATE jaga.produk SET nama = 'Pendidikan' WHERE nama = 'Pendidikan - Sekolah';
            UPDATE jaga.produk SET nama = 'Pendidikan - Universitas' WHERE nama = 'Pendidikan - Kampus';
            UPDATE jaga.produk SET nama = 'Stranas' WHERE nama = 'Stranas PK';
            UPDATE jaga.produk SET nama = 'Kesehatan' WHERE nama = 'Fasilitas Kesehatan';
        ");

        self::$connection->execute("
            ALTER TABLE jaga.produk DROP COLUMN IF EXISTS produk_group;
        ");
    }
}
