<?php

use Phalcon\Mvc\Model\Migration;

class KemdagriMigration_229 extends Migration
{
    public function up()
    {
        self::$connection->execute('
            CREATE TABLE IF NOT EXISTS "jaga"."kemdagri_kepadatan_penduduk" (
                "Kode" varchar(255),
                "Wilayah" varchar(255),
                "Jumlah_Penduduk" int8,
                "Luas_Wilayah" varchar(255),
                "Kepadatan_Penduduk" varchar(255),
                "Created_Date" date,
                "Updated_Date" date,
                CONSTRAINT "kemdagri_kepadatan_penduduk_pkey" PRIMARY KEY ("Kode")
            );

            CREATE TABLE IF NOT EXISTS "jaga"."kemdagri_kepadatan_penduduk_gender" (
                "Kode" varchar(255),
                "Wilayah" varchar(255),
                "Jumlah_Penduduk_LK" int8,
                "Jumlah_Penduduk_P" int8,
                "Jumlah_Penduduk" int8,
                "Created_Date" date,
                "Updated_Date" date,
                CONSTRAINT "kemdagri_kepadatan_penduduk_gender_pkey" PRIMARY KEY ("Kode")
            );

            CREATE TABLE IF NOT EXISTS "jaga"."kemdagri_kepadatan_penduduk_per_desa" (
                "KODE" varchar(255),
                "NAMA WILAYAH" varchar(255),
                "LK" int8,
                "P" int8,
                "JML" int8,
                "created_date" date,
                "updated_date" date,
                CONSTRAINT "kemdagri_kepadatan_penduduk_per_desa_pkey" PRIMARY KEY ("KODE")
            );

            CREATE TABLE IF NOT EXISTS  "jaga"."kemdagri_luas_wilayah_kabkot" (
                "kode_pemda" varchar(255) NOT NULL,
                "luas_wilayah" float4,
                "created_date" date,
                "updated_date" date,
                "nama_wilayah" varchar(255),
                CONSTRAINT "kemdagri_luas_wilayah_kabkot_pkey" PRIMARY KEY ("kode_pemda")
            );

            CREATE TABLE IF NOT EXISTS "jaga"."kemdagri_luas_wilayah_prov" (
                "kode_pemda" varchar(255) NOT NULL,
                "luas_wilayah" float4,
                "created_date" date,
                "updated_date" date,
                CONSTRAINT "kemdagri_luas_wilayah_prov_pkey" PRIMARY KEY ("kode_pemda")
            );

            CREATE TABLE IF NOT EXISTS "jaga"."kemdagri_mkode_kabkot" (
                "ID" varchar(255) NOT NULL,
                "NO_PROP" varchar(255),
                "NAMA_PROP" varchar(255),
                "NO_KAB" varchar(255),
                "NAMA_KAB" varchar(255),
                "KODE_KAB_TEMP" varchar(255),
                "KODE" varchar(255),
                CONSTRAINT "kemdagri_master_kode_kabkot_pkey" PRIMARY KEY ("ID")
            );

            CREATE TABLE IF NOT EXISTS "jaga"."kemdagri_mkode_prov" (
                "ID" varchar(255) NOT NULL,
                "NO_PROP" varchar(255),
                "NAMA_PROP" varchar(255),
                "KODE" varchar(255),
                CONSTRAINT "kemdagri_master_kode_prov_pkey" PRIMARY KEY ("ID")
            );

            CREATE TABLE IF NOT EXISTS "jaga"."kemdagri_mkode_wilayah" (
                "ID" int4 NOT NULL,
                "KODE" varchar(255),
                "NO_PROP" varchar(255),
                "NAMA_PROP" varchar(255),
                "NO_KAB" varchar(255),
                "NAMA_KAB" varchar(255),
                "NO_KEC" varchar(255),
                "NAMA_KEC" varchar(255),
                "NO_KEL" varchar(255),
                "NAMA_KEL" varchar(255),
                CONSTRAINT "kemdagri_master_kode_wilayah_pkey" PRIMARY KEY ("ID")
            );

            CREATE TABLE IF NOT EXISTS "jaga"."kemdagri_penduduk_kabkot" (
                "kode_pemda" varchar(255) NOT NULL,
                "jml_laki" int4,
                "jml_perempuan" int4,
                "jml_penduduk" int8,
                "created_date" date,
                "updated_date" date,
                CONSTRAINT "kemdagri_penduduk_kabkot_pkey" PRIMARY KEY ("kode_pemda")
            );

            CREATE TABLE IF NOT EXISTS "jaga"."kemdagri_penduduk_prov" (
                "kode_pemda" varchar(255) NOT NULL,
                "jml_laki" int8,
                "jml_perempuan" int8,
                "jml_penduduk" int8,
                "created_date" date,
                "updated_date" date,
                CONSTRAINT "kemdagri_penduduk_prov_pkey" PRIMARY KEY ("kode_pemda")
            );

            CREATE OR REPLACE VIEW "jaga"."kepadatan_penduduk_prov" AS
                SELECT pdd.kode_pemda,
                    pdd.jml_laki,
                    pdd.jml_perempuan,
                    pdd.jml_penduduk,
                    pdd.created_date,
                    pdd.updated_date,
                    wil.luas_wilayah,
                    ((pdd.jml_penduduk)::double precision / wil.luas_wilayah) AS kepadatan_penduduk
                FROM (jaga.kemdagri_penduduk_prov pdd
                    LEFT JOIN jaga.kemdagri_luas_wilayah_prov wil ON (((pdd.kode_pemda)::text = (wil.kode_pemda)::text)));

            CREATE OR REPLACE VIEW "jaga"."kepadatan_penduduk_kabkot" AS
                SELECT pdd.kode_pemda,
                    pdd.jml_laki,
                    pdd.jml_perempuan,
                    pdd.jml_penduduk,
                    pdd.created_date,
                    pdd.updated_date,
                    wil.luas_wilayah,
                    ((pdd.jml_penduduk)::double precision / wil.luas_wilayah) AS kepadatan_penduduk,
                    wil.nama_wilayah
                FROM (jaga.kemdagri_penduduk_kabkot pdd
                    LEFT JOIN jaga.kemdagri_luas_wilayah_kabkot wil ON (((pdd.kode_pemda)::text = (wil.kode_pemda)::text)));

            CREATE OR REPLACE VIEW "jaga"."kepadatan_penduduk_all" AS
                SELECT kepadatan_penduduk_kabkot.kode_pemda,
                    kepadatan_penduduk_kabkot.nama_wilayah,
                    kepadatan_penduduk_kabkot.jml_laki,
                    kepadatan_penduduk_kabkot.jml_perempuan,
                    kepadatan_penduduk_kabkot.jml_penduduk,
                    kepadatan_penduduk_kabkot.luas_wilayah,
                    kepadatan_penduduk_kabkot.kepadatan_penduduk,
                    kepadatan_penduduk_kabkot.created_date,
                    kepadatan_penduduk_kabkot.updated_date
                FROM jaga.kepadatan_penduduk_kabkot
                UNION
                SELECT pdd.kode_pemda,
                    kd."NAMA_PROP" AS nama_wilayah,
                    pdd.jml_laki,
                    pdd.jml_perempuan,
                    pdd.jml_penduduk,
                    pdd.luas_wilayah,
                    pdd.kepadatan_penduduk,
                    pdd.created_date,
                    pdd.updated_date
                FROM (jaga.kepadatan_penduduk_prov pdd
                    LEFT JOIN jaga.kemdagri_mkode_prov kd ON (((pdd.kode_pemda)::text = (kd."KODE")::text)))
                ORDER BY 1;
        ');
    }
}
