CREATE TABLE IF NOT EXISTS public.trn_lokasi_sub_kegiatan (
    id_unik_lokasi_sub_kegiatan uuid DEFAULT public.uuid_generate_v7() NOT NULL,
    tahun integer DEFAULT 0 NOT NULL,
	id_daerah integer DEFAULT 0 NOT NULL,
	id_unik_jadwal uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    id_kab_kota integer DEFAULT 0 NOT NULL,
    id_kecamatan integer DEFAULT 0 NOT NULL,
    id_kelurahan integer DEFAULT 0 NOT NULL,
	id_kab_kota_murni integer DEFAULT 0 NOT NULL,
    id_kecamatan_murni integer DEFAULT 0 NOT NULL,
    id_kelurahan_murni integer DEFAULT 0 NOT NULL,
    id_bl_lama integer DEFAULT 0 NOT NULL,
	id_sub_bl_lama integer DEFAULT 0 NOT NULL,
	id_detil_lokasi_lama integer DEFAULT 0 NOT NULL,
    created_at timestamp(6) without time zone DEFAULT now() NOT NULL,
    created_by integer DEFAULT 0 NOT NULL,
    updated_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    updated_by integer DEFAULT 0 NOT NULL,
    deleted_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    deleted_by integer DEFAULT 0 NOT NULL
);

ALTER TABLE public.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_pkey PRIMARY KEY (id_unik_lokasi_sub_kegiatan, tahun, id_daerah);
ALTER TABLE public.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_unique_key UNIQUE (tahun, id_daerah, id_unik_jadwal, id_unik_skpd, id_unik_sub_skpd, id_unik_sub_kegiatan, id_kab_kota, id_kecamatan, id_kelurahan);

COMMENT ON TABLE public.trn_lokasi_sub_kegiatan IS 'Tabel transaksi yang menyimpan detil lokasi pekerjaan dari suatu sub kegiatan.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_unik_lokasi_sub_kegiatan IS 'ID unik UUID sebagai ID primary key.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_bl_lama IS 'Primary key tabel d_bl lama.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_sub_bl_lama IS 'Primary key tabel d_sub_bl lama.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_detil_lokasi_lama IS 'Primary key tabel d_detil_lokasi_sub_bl lama.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.tahun IS 'Tahun anggaran sub kegiatan.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_daerah IS 'Pemerintah daerah pelaksana sub kegiatan.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_unik_jadwal IS 'ID jadwal tahapan anggaran.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_unik_skpd IS 'ID SKPD induk yang membawahi pelaksana kegiatan.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_unik_sub_skpd IS 'ID SKPD pelaksana kegiatan.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_unik_sub_kegiatan IS 'ID sub kegiatan yang sudah diinput dalam rencana kerja.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_kab_kota IS 'ID kab/kota sesuai data master daerah.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_kecamatan IS 'ID kab/kota sesuai data master kecamatan yang dipilih.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.id_kelurahan IS 'ID kelurahan/desa sesuai data master kelurahan yang dipilih.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.created_at IS 'Tanggal dan waktu data dibuat.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.created_by IS 'ID pengguna yang membuat data.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.updated_by IS 'ID pengguna yang memperbarui data.';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN public.trn_lokasi_sub_kegiatan.deleted_by IS 'ID pengguna yang menghapus data.';

CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_lokasi_sub_kegiatan_idx ON public.trn_lokasi_sub_kegiatan USING btree (id_unik_lokasi_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_tahun_idx ON public.trn_lokasi_sub_kegiatan USING btree (tahun);
CREATE INDEX trn_lokasi_sub_kegiatan_id_daerah_idx ON public.trn_lokasi_sub_kegiatan USING btree (id_daerah);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_jadwal_idx ON public.trn_lokasi_sub_kegiatan USING btree (id_unik_jadwal);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_skpd_idx ON public.trn_lokasi_sub_kegiatan USING btree (id_unik_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_skpd_idx ON public.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_kegiatan_idx ON public.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kab_kota_idx ON public.trn_lokasi_sub_kegiatan USING btree (id_kab_kota);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kecamatan_idx ON public.trn_lokasi_sub_kegiatan USING btree (id_kecamatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kelurahan_idx ON public.trn_lokasi_sub_kegiatan USING btree (id_kelurahan);


-- SCHEMA rancangan_murni;
CREATE TABLE IF NOT EXISTS rancangan_murni.trn_lokasi_sub_kegiatan (
    id_unik_lokasi_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    tahun integer DEFAULT 0 NOT NULL,
	id_daerah integer DEFAULT 0 NOT NULL,
	id_unik_jadwal uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    id_kab_kota integer DEFAULT 0 NOT NULL,
    id_kecamatan integer DEFAULT 0 NOT NULL,
    id_kelurahan integer DEFAULT 0 NOT NULL,
	id_kab_kota_murni integer DEFAULT 0 NOT NULL,
    id_kecamatan_murni integer DEFAULT 0 NOT NULL,
    id_kelurahan_murni integer DEFAULT 0 NOT NULL,
    id_bl_lama integer DEFAULT 0 NOT NULL,
	id_sub_bl_lama integer DEFAULT 0 NOT NULL,
	id_detil_lokasi_lama integer DEFAULT 0 NOT NULL,
    created_at timestamp(6) without time zone DEFAULT now() NOT NULL,
    created_by integer DEFAULT 0 NOT NULL,
    updated_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    updated_by integer DEFAULT 0 NOT NULL,
    deleted_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    deleted_by integer DEFAULT 0 NOT NULL
);

ALTER TABLE rancangan_murni.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_pkey PRIMARY KEY (id_unik_lokasi_sub_kegiatan, tahun, id_daerah);
ALTER TABLE rancangan_murni.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_unique_key UNIQUE (tahun, id_daerah, id_unik_jadwal, id_unik_skpd, id_unik_sub_skpd, id_unik_sub_kegiatan, id_kab_kota, id_kecamatan, id_kelurahan);

COMMENT ON TABLE rancangan_murni.trn_lokasi_sub_kegiatan IS 'Tabel transaksi yang menyimpan detil lokasi pekerjaan dari suatu sub kegiatan.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_unik_lokasi_sub_kegiatan IS 'ID unik UUID sebagai ID primary key.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_bl_lama IS 'Primary key tabel d_bl lama.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_sub_bl_lama IS 'Primary key tabel d_sub_bl lama.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_detil_lokasi_lama IS 'Primary key tabel d_detil_lokasi_sub_bl lama.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.tahun IS 'Tahun anggaran sub kegiatan.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_daerah IS 'Pemerintah daerah pelaksana sub kegiatan.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_unik_jadwal IS 'ID jadwal tahapan anggaran.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_unik_skpd IS 'ID SKPD induk yang membawahi pelaksana kegiatan.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_unik_sub_skpd IS 'ID SKPD pelaksana kegiatan.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_unik_sub_kegiatan IS 'ID sub kegiatan yang sudah diinput dalam rencana kerja.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_kab_kota IS 'ID kab/kota sesuai data master daerah.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_kecamatan IS 'ID kab/kota sesuai data master kecamatan yang dipilih.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.id_kelurahan IS 'ID kelurahan/desa sesuai data master kelurahan yang dipilih.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.created_at IS 'Tanggal dan waktu data dibuat.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.created_by IS 'ID pengguna yang membuat data.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.updated_by IS 'ID pengguna yang memperbarui data.';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN rancangan_murni.trn_lokasi_sub_kegiatan.deleted_by IS 'ID pengguna yang menghapus data.';

CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_lokasi_sub_kegiatan_idx ON rancangan_murni.trn_lokasi_sub_kegiatan USING btree (id_unik_lokasi_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_tahun_idx ON rancangan_murni.trn_lokasi_sub_kegiatan USING btree (tahun);
CREATE INDEX trn_lokasi_sub_kegiatan_id_daerah_idx ON rancangan_murni.trn_lokasi_sub_kegiatan USING btree (id_daerah);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_jadwal_idx ON rancangan_murni.trn_lokasi_sub_kegiatan USING btree (id_unik_jadwal);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_skpd_idx ON rancangan_murni.trn_lokasi_sub_kegiatan USING btree (id_unik_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_skpd_idx ON rancangan_murni.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_kegiatan_idx ON rancangan_murni.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kab_kota_idx ON rancangan_murni.trn_lokasi_sub_kegiatan USING btree (id_kab_kota);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kecamatan_idx ON rancangan_murni.trn_lokasi_sub_kegiatan USING btree (id_kecamatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kelurahan_idx ON rancangan_murni.trn_lokasi_sub_kegiatan USING btree (id_kelurahan);


-- SCHEMA penetapan_murni
CREATE TABLE IF NOT EXISTS penetapan_murni.trn_lokasi_sub_kegiatan (
    id_unik_lokasi_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    tahun integer DEFAULT 0 NOT NULL,
	id_daerah integer DEFAULT 0 NOT NULL,
	id_unik_jadwal uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    id_kab_kota integer DEFAULT 0 NOT NULL,
    id_kecamatan integer DEFAULT 0 NOT NULL,
    id_kelurahan integer DEFAULT 0 NOT NULL,
	id_kab_kota_murni integer DEFAULT 0 NOT NULL,
    id_kecamatan_murni integer DEFAULT 0 NOT NULL,
    id_kelurahan_murni integer DEFAULT 0 NOT NULL,
    id_bl_lama integer DEFAULT 0 NOT NULL,
	id_sub_bl_lama integer DEFAULT 0 NOT NULL,
	id_detil_lokasi_lama integer DEFAULT 0 NOT NULL,
    created_at timestamp(6) without time zone DEFAULT now() NOT NULL,
    created_by integer DEFAULT 0 NOT NULL,
    updated_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    updated_by integer DEFAULT 0 NOT NULL,
    deleted_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    deleted_by integer DEFAULT 0 NOT NULL
);

ALTER TABLE penetapan_murni.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_pkey PRIMARY KEY (id_unik_lokasi_sub_kegiatan, tahun, id_daerah);
ALTER TABLE penetapan_murni.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_unique_key UNIQUE (tahun, id_daerah, id_unik_jadwal, id_unik_skpd, id_unik_sub_skpd, id_unik_sub_kegiatan, id_kab_kota, id_kecamatan, id_kelurahan);

COMMENT ON TABLE penetapan_murni.trn_lokasi_sub_kegiatan IS 'Tabel transaksi yang menyimpan detil lokasi pekerjaan dari suatu sub kegiatan.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_unik_lokasi_sub_kegiatan IS 'ID unik UUID sebagai ID primary key.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_bl_lama IS 'Primary key tabel d_bl lama.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_sub_bl_lama IS 'Primary key tabel d_sub_bl lama.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_detil_lokasi_lama IS 'Primary key tabel d_detil_lokasi_sub_bl lama.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.tahun IS 'Tahun anggaran sub kegiatan.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_daerah IS 'Pemerintah daerah pelaksana sub kegiatan.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_unik_jadwal IS 'ID jadwal tahapan anggaran.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_unik_skpd IS 'ID SKPD induk yang membawahi pelaksana kegiatan.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_unik_sub_skpd IS 'ID SKPD pelaksana kegiatan.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_unik_sub_kegiatan IS 'ID sub kegiatan yang sudah diinput dalam rencana kerja.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_kab_kota IS 'ID kab/kota sesuai data master daerah.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_kecamatan IS 'ID kab/kota sesuai data master kecamatan yang dipilih.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.id_kelurahan IS 'ID kelurahan/desa sesuai data master kelurahan yang dipilih.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.created_at IS 'Tanggal dan waktu data dibuat.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.created_by IS 'ID pengguna yang membuat data.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.updated_by IS 'ID pengguna yang memperbarui data.';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN penetapan_murni.trn_lokasi_sub_kegiatan.deleted_by IS 'ID pengguna yang menghapus data.';

CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_lokasi_sub_kegiatan_idx ON penetapan_murni.trn_lokasi_sub_kegiatan USING btree (id_unik_lokasi_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_tahun_idx ON penetapan_murni.trn_lokasi_sub_kegiatan USING btree (tahun);
CREATE INDEX trn_lokasi_sub_kegiatan_id_daerah_idx ON penetapan_murni.trn_lokasi_sub_kegiatan USING btree (id_daerah);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_jadwal_idx ON penetapan_murni.trn_lokasi_sub_kegiatan USING btree (id_unik_jadwal);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_skpd_idx ON penetapan_murni.trn_lokasi_sub_kegiatan USING btree (id_unik_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_skpd_idx ON penetapan_murni.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_kegiatan_idx ON penetapan_murni.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kab_kota_idx ON penetapan_murni.trn_lokasi_sub_kegiatan USING btree (id_kab_kota);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kecamatan_idx ON penetapan_murni.trn_lokasi_sub_kegiatan USING btree (id_kecamatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kelurahan_idx ON penetapan_murni.trn_lokasi_sub_kegiatan USING btree (id_kelurahan);


-- SCHEMA rancangan_pergeseran;
CREATE TABLE IF NOT EXISTS rancangan_pergeseran.trn_lokasi_sub_kegiatan (
    id_unik_lokasi_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    tahun integer DEFAULT 0 NOT NULL,
	id_daerah integer DEFAULT 0 NOT NULL,
	id_unik_jadwal uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    id_kab_kota integer DEFAULT 0 NOT NULL,
    id_kecamatan integer DEFAULT 0 NOT NULL,
    id_kelurahan integer DEFAULT 0 NOT NULL,
	id_kab_kota_murni integer DEFAULT 0 NOT NULL,
    id_kecamatan_murni integer DEFAULT 0 NOT NULL,
    id_kelurahan_murni integer DEFAULT 0 NOT NULL,
    id_bl_lama integer DEFAULT 0 NOT NULL,
	id_sub_bl_lama integer DEFAULT 0 NOT NULL,
	id_detil_lokasi_lama integer DEFAULT 0 NOT NULL,
    created_at timestamp(6) without time zone DEFAULT now() NOT NULL,
    created_by integer DEFAULT 0 NOT NULL,
    updated_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    updated_by integer DEFAULT 0 NOT NULL,
    deleted_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    deleted_by integer DEFAULT 0 NOT NULL
);

ALTER TABLE rancangan_pergeseran.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_pkey PRIMARY KEY (id_unik_lokasi_sub_kegiatan, tahun, id_daerah);
ALTER TABLE rancangan_pergeseran.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_unique_key UNIQUE (tahun, id_daerah, id_unik_jadwal, id_unik_skpd, id_unik_sub_skpd, id_unik_sub_kegiatan, id_kab_kota, id_kecamatan, id_kelurahan);

COMMENT ON TABLE rancangan_pergeseran.trn_lokasi_sub_kegiatan IS 'Tabel transaksi yang menyimpan detil lokasi pekerjaan dari suatu sub kegiatan.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_unik_lokasi_sub_kegiatan IS 'ID unik UUID sebagai ID primary key.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_bl_lama IS 'Primary key tabel d_bl lama.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_sub_bl_lama IS 'Primary key tabel d_sub_bl lama.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_detil_lokasi_lama IS 'Primary key tabel d_detil_lokasi_sub_bl lama.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.tahun IS 'Tahun anggaran sub kegiatan.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_daerah IS 'Pemerintah daerah pelaksana sub kegiatan.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_unik_jadwal IS 'ID jadwal tahapan anggaran.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_unik_skpd IS 'ID SKPD induk yang membawahi pelaksana kegiatan.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_unik_sub_skpd IS 'ID SKPD pelaksana kegiatan.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_unik_sub_kegiatan IS 'ID sub kegiatan yang sudah diinput dalam rencana kerja.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_kab_kota IS 'ID kab/kota sesuai data master daerah.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_kecamatan IS 'ID kab/kota sesuai data master kecamatan yang dipilih.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.id_kelurahan IS 'ID kelurahan/desa sesuai data master kelurahan yang dipilih.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.created_at IS 'Tanggal dan waktu data dibuat.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.created_by IS 'ID pengguna yang membuat data.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.updated_by IS 'ID pengguna yang memperbarui data.';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN rancangan_pergeseran.trn_lokasi_sub_kegiatan.deleted_by IS 'ID pengguna yang menghapus data.';

CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_lokasi_sub_kegiatan_idx ON rancangan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_unik_lokasi_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_tahun_idx ON rancangan_pergeseran.trn_lokasi_sub_kegiatan USING btree (tahun);
CREATE INDEX trn_lokasi_sub_kegiatan_id_daerah_idx ON rancangan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_daerah);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_jadwal_idx ON rancangan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_unik_jadwal);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_skpd_idx ON rancangan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_unik_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_skpd_idx ON rancangan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_kegiatan_idx ON rancangan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kab_kota_idx ON rancangan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_kab_kota);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kecamatan_idx ON rancangan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_kecamatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kelurahan_idx ON rancangan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_kelurahan);


-- SCHEMA penetapan_peregseran
CREATE TABLE IF NOT EXISTS penetapan_pergeseran.trn_lokasi_sub_kegiatan (
    id_unik_lokasi_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    tahun integer DEFAULT 0 NOT NULL,
	id_daerah integer DEFAULT 0 NOT NULL,
	id_unik_jadwal uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    id_kab_kota integer DEFAULT 0 NOT NULL,
    id_kecamatan integer DEFAULT 0 NOT NULL,
    id_kelurahan integer DEFAULT 0 NOT NULL,
	id_kab_kota_murni integer DEFAULT 0 NOT NULL,
    id_kecamatan_murni integer DEFAULT 0 NOT NULL,
    id_kelurahan_murni integer DEFAULT 0 NOT NULL,
    id_bl_lama integer DEFAULT 0 NOT NULL,
	id_sub_bl_lama integer DEFAULT 0 NOT NULL,
	id_detil_lokasi_lama integer DEFAULT 0 NOT NULL,
    created_at timestamp(6) without time zone DEFAULT now() NOT NULL,
    created_by integer DEFAULT 0 NOT NULL,
    updated_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    updated_by integer DEFAULT 0 NOT NULL,
    deleted_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    deleted_by integer DEFAULT 0 NOT NULL
);

ALTER TABLE penetapan_pergeseran.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_pkey PRIMARY KEY (id_unik_lokasi_sub_kegiatan, tahun, id_daerah);
ALTER TABLE penetapan_pergeseran.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_unique_key UNIQUE (tahun, id_daerah, id_unik_jadwal, id_unik_skpd, id_unik_sub_skpd, id_unik_sub_kegiatan, id_kab_kota, id_kecamatan, id_kelurahan);

COMMENT ON TABLE penetapan_pergeseran.trn_lokasi_sub_kegiatan IS 'Tabel transaksi yang menyimpan detil lokasi pekerjaan dari suatu sub kegiatan.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_unik_lokasi_sub_kegiatan IS 'ID unik UUID sebagai ID primary key.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_bl_lama IS 'Primary key tabel d_bl lama.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_sub_bl_lama IS 'Primary key tabel d_sub_bl lama.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_detil_lokasi_lama IS 'Primary key tabel d_detil_lokasi_sub_bl lama.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.tahun IS 'Tahun anggaran sub kegiatan.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_daerah IS 'Pemerintah daerah pelaksana sub kegiatan.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_unik_jadwal IS 'ID jadwal tahapan anggaran.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_unik_skpd IS 'ID SKPD induk yang membawahi pelaksana kegiatan.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_unik_sub_skpd IS 'ID SKPD pelaksana kegiatan.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_unik_sub_kegiatan IS 'ID sub kegiatan yang sudah diinput dalam rencana kerja.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_kab_kota IS 'ID kab/kota sesuai data master daerah.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_kecamatan IS 'ID kab/kota sesuai data master kecamatan yang dipilih.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.id_kelurahan IS 'ID kelurahan/desa sesuai data master kelurahan yang dipilih.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.created_at IS 'Tanggal dan waktu data dibuat.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.created_by IS 'ID pengguna yang membuat data.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.updated_by IS 'ID pengguna yang memperbarui data.';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN penetapan_pergeseran.trn_lokasi_sub_kegiatan.deleted_by IS 'ID pengguna yang menghapus data.';

CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_lokasi_sub_kegiatan_idx ON penetapan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_unik_lokasi_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_tahun_idx ON penetapan_pergeseran.trn_lokasi_sub_kegiatan USING btree (tahun);
CREATE INDEX trn_lokasi_sub_kegiatan_id_daerah_idx ON penetapan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_daerah);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_jadwal_idx ON penetapan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_unik_jadwal);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_skpd_idx ON penetapan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_unik_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_skpd_idx ON penetapan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_kegiatan_idx ON penetapan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kab_kota_idx ON penetapan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_kab_kota);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kecamatan_idx ON penetapan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_kecamatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kelurahan_idx ON penetapan_pergeseran.trn_lokasi_sub_kegiatan USING btree (id_kelurahan);


-- SCHEMA rancangan_perubahan;
CREATE TABLE IF NOT EXISTS rancangan_perubahan.trn_lokasi_sub_kegiatan (
    id_unik_lokasi_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    tahun integer DEFAULT 0 NOT NULL,
	id_daerah integer DEFAULT 0 NOT NULL,
	id_unik_jadwal uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    id_kab_kota integer DEFAULT 0 NOT NULL,
    id_kecamatan integer DEFAULT 0 NOT NULL,
    id_kelurahan integer DEFAULT 0 NOT NULL,
	id_kab_kota_murni integer DEFAULT 0 NOT NULL,
    id_kecamatan_murni integer DEFAULT 0 NOT NULL,
    id_kelurahan_murni integer DEFAULT 0 NOT NULL,
    id_bl_lama integer DEFAULT 0 NOT NULL,
	id_sub_bl_lama integer DEFAULT 0 NOT NULL,
	id_detil_lokasi_lama integer DEFAULT 0 NOT NULL,
    created_at timestamp(6) without time zone DEFAULT now() NOT NULL,
    created_by integer DEFAULT 0 NOT NULL,
    updated_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    updated_by integer DEFAULT 0 NOT NULL,
    deleted_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    deleted_by integer DEFAULT 0 NOT NULL
);

ALTER TABLE rancangan_perubahan.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_pkey PRIMARY KEY (id_unik_lokasi_sub_kegiatan, tahun, id_daerah);
ALTER TABLE rancangan_perubahan.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_unique_key UNIQUE (tahun, id_daerah, id_unik_jadwal, id_unik_skpd, id_unik_sub_skpd, id_unik_sub_kegiatan, id_kab_kota, id_kecamatan, id_kelurahan);

COMMENT ON TABLE rancangan_perubahan.trn_lokasi_sub_kegiatan IS 'Tabel transaksi yang menyimpan detil lokasi pekerjaan dari suatu sub kegiatan.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_unik_lokasi_sub_kegiatan IS 'ID unik UUID sebagai ID primary key.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_bl_lama IS 'Primary key tabel d_bl lama.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_sub_bl_lama IS 'Primary key tabel d_sub_bl lama.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_detil_lokasi_lama IS 'Primary key tabel d_detil_lokasi_sub_bl lama.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.tahun IS 'Tahun anggaran sub kegiatan.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_daerah IS 'Pemerintah daerah pelaksana sub kegiatan.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_unik_jadwal IS 'ID jadwal tahapan anggaran.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_unik_skpd IS 'ID SKPD induk yang membawahi pelaksana kegiatan.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_unik_sub_skpd IS 'ID SKPD pelaksana kegiatan.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_unik_sub_kegiatan IS 'ID sub kegiatan yang sudah diinput dalam rencana kerja.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_kab_kota IS 'ID kab/kota sesuai data master daerah.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_kecamatan IS 'ID kab/kota sesuai data master kecamatan yang dipilih.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.id_kelurahan IS 'ID kelurahan/desa sesuai data master kelurahan yang dipilih.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.created_at IS 'Tanggal dan waktu data dibuat.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.created_by IS 'ID pengguna yang membuat data.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.updated_by IS 'ID pengguna yang memperbarui data.';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN rancangan_perubahan.trn_lokasi_sub_kegiatan.deleted_by IS 'ID pengguna yang menghapus data.';

CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_lokasi_sub_kegiatan_idx ON rancangan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_lokasi_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_tahun_idx ON rancangan_perubahan.trn_lokasi_sub_kegiatan USING btree (tahun);
CREATE INDEX trn_lokasi_sub_kegiatan_id_daerah_idx ON rancangan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_daerah);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_jadwal_idx ON rancangan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_jadwal);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_skpd_idx ON rancangan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_skpd_idx ON rancangan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_kegiatan_idx ON rancangan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kab_kota_idx ON rancangan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kab_kota);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kecamatan_idx ON rancangan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kecamatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kelurahan_idx ON rancangan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kelurahan);


-- SCHEMA penetapan_perubahan;
CREATE TABLE IF NOT EXISTS penetapan_perubahan.trn_lokasi_sub_kegiatan (
    id_unik_lokasi_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    tahun integer DEFAULT 0 NOT NULL,
	id_daerah integer DEFAULT 0 NOT NULL,
	id_unik_jadwal uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    id_kab_kota integer DEFAULT 0 NOT NULL,
    id_kecamatan integer DEFAULT 0 NOT NULL,
    id_kelurahan integer DEFAULT 0 NOT NULL,
	id_kab_kota_murni integer DEFAULT 0 NOT NULL,
    id_kecamatan_murni integer DEFAULT 0 NOT NULL,
    id_kelurahan_murni integer DEFAULT 0 NOT NULL,
    id_bl_lama integer DEFAULT 0 NOT NULL,
	id_sub_bl_lama integer DEFAULT 0 NOT NULL,
	id_detil_lokasi_lama integer DEFAULT 0 NOT NULL,
    created_at timestamp(6) without time zone DEFAULT now() NOT NULL,
    created_by integer DEFAULT 0 NOT NULL,
    updated_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    updated_by integer DEFAULT 0 NOT NULL,
    deleted_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    deleted_by integer DEFAULT 0 NOT NULL
);

ALTER TABLE penetapan_perubahan.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_pkey PRIMARY KEY (id_unik_lokasi_sub_kegiatan, tahun, id_daerah);
ALTER TABLE penetapan_perubahan.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_unique_key UNIQUE (tahun, id_daerah, id_unik_jadwal, id_unik_skpd, id_unik_sub_skpd, id_unik_sub_kegiatan, id_kab_kota, id_kecamatan, id_kelurahan);

COMMENT ON TABLE penetapan_perubahan.trn_lokasi_sub_kegiatan IS 'Tabel transaksi yang menyimpan detil lokasi pekerjaan dari suatu sub kegiatan.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_unik_lokasi_sub_kegiatan IS 'ID unik UUID sebagai ID primary key.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_bl_lama IS 'Primary key tabel d_bl lama.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_sub_bl_lama IS 'Primary key tabel d_sub_bl lama.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_detil_lokasi_lama IS 'Primary key tabel d_detil_lokasi_sub_bl lama.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.tahun IS 'Tahun anggaran sub kegiatan.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_daerah IS 'Pemerintah daerah pelaksana sub kegiatan.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_unik_jadwal IS 'ID jadwal tahapan anggaran.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_unik_skpd IS 'ID SKPD induk yang membawahi pelaksana kegiatan.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_unik_sub_skpd IS 'ID SKPD pelaksana kegiatan.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_unik_sub_kegiatan IS 'ID sub kegiatan yang sudah diinput dalam rencana kerja.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_kab_kota IS 'ID kab/kota sesuai data master daerah.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_kecamatan IS 'ID kab/kota sesuai data master kecamatan yang dipilih.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.id_kelurahan IS 'ID kelurahan/desa sesuai data master kelurahan yang dipilih.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.created_at IS 'Tanggal dan waktu data dibuat.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.created_by IS 'ID pengguna yang membuat data.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.updated_by IS 'ID pengguna yang memperbarui data.';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN penetapan_perubahan.trn_lokasi_sub_kegiatan.deleted_by IS 'ID pengguna yang menghapus data.';

CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_lokasi_sub_kegiatan_idx ON penetapan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_lokasi_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_tahun_idx ON penetapan_perubahan.trn_lokasi_sub_kegiatan USING btree (tahun);
CREATE INDEX trn_lokasi_sub_kegiatan_id_daerah_idx ON penetapan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_daerah);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_jadwal_idx ON penetapan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_jadwal);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_skpd_idx ON penetapan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_skpd_idx ON penetapan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_kegiatan_idx ON penetapan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kab_kota_idx ON penetapan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kab_kota);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kecamatan_idx ON penetapan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kecamatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kelurahan_idx ON penetapan_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kelurahan);


-- SCHEMA rancangan_pergeseran_perubahan;
CREATE TABLE IF NOT EXISTS rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan (
    id_unik_lokasi_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    tahun integer DEFAULT 0 NOT NULL,
	id_daerah integer DEFAULT 0 NOT NULL,
	id_unik_jadwal uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    id_kab_kota integer DEFAULT 0 NOT NULL,
    id_kecamatan integer DEFAULT 0 NOT NULL,
    id_kelurahan integer DEFAULT 0 NOT NULL,
	id_kab_kota_murni integer DEFAULT 0 NOT NULL,
    id_kecamatan_murni integer DEFAULT 0 NOT NULL,
    id_kelurahan_murni integer DEFAULT 0 NOT NULL,
    id_bl_lama integer DEFAULT 0 NOT NULL,
	id_sub_bl_lama integer DEFAULT 0 NOT NULL,
	id_detil_lokasi_lama integer DEFAULT 0 NOT NULL,
    created_at timestamp(6) without time zone DEFAULT now() NOT NULL,
    created_by integer DEFAULT 0 NOT NULL,
    updated_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    updated_by integer DEFAULT 0 NOT NULL,
    deleted_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    deleted_by integer DEFAULT 0 NOT NULL
);

ALTER TABLE rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_pkey PRIMARY KEY (id_unik_lokasi_sub_kegiatan, tahun, id_daerah);
ALTER TABLE rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_unique_key UNIQUE (tahun, id_daerah, id_unik_jadwal, id_unik_skpd, id_unik_sub_skpd, id_unik_sub_kegiatan, id_kab_kota, id_kecamatan, id_kelurahan);

COMMENT ON TABLE rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan IS 'Tabel transaksi yang menyimpan detil lokasi pekerjaan dari suatu sub kegiatan.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_unik_lokasi_sub_kegiatan IS 'ID unik UUID sebagai ID primary key.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_bl_lama IS 'Primary key tabel d_bl lama.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_sub_bl_lama IS 'Primary key tabel d_sub_bl lama.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_detil_lokasi_lama IS 'Primary key tabel d_detil_lokasi_sub_bl lama.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.tahun IS 'Tahun anggaran sub kegiatan.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_daerah IS 'Pemerintah daerah pelaksana sub kegiatan.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_unik_jadwal IS 'ID jadwal tahapan anggaran.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_unik_skpd IS 'ID SKPD induk yang membawahi pelaksana kegiatan.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_unik_sub_skpd IS 'ID SKPD pelaksana kegiatan.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_unik_sub_kegiatan IS 'ID sub kegiatan yang sudah diinput dalam rencana kerja.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_kab_kota IS 'ID kab/kota sesuai data master daerah.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_kecamatan IS 'ID kab/kota sesuai data master kecamatan yang dipilih.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_kelurahan IS 'ID kelurahan/desa sesuai data master kelurahan yang dipilih.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.created_at IS 'Tanggal dan waktu data dibuat.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.created_by IS 'ID pengguna yang membuat data.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.updated_by IS 'ID pengguna yang memperbarui data.';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.deleted_by IS 'ID pengguna yang menghapus data.';

CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_lokasi_sub_kegiatan_idx ON rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_lokasi_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_tahun_idx ON rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (tahun);
CREATE INDEX trn_lokasi_sub_kegiatan_id_daerah_idx ON rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_daerah);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_jadwal_idx ON rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_jadwal);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_skpd_idx ON rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_skpd_idx ON rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_kegiatan_idx ON rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kab_kota_idx ON rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kab_kota);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kecamatan_idx ON rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kecamatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kelurahan_idx ON rancangan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kelurahan);


-- SCHEMA penetapan_pergeseran_perubahan;
CREATE TABLE IF NOT EXISTS penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan (
    id_unik_lokasi_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    tahun integer DEFAULT 0 NOT NULL,
	id_daerah integer DEFAULT 0 NOT NULL,
	id_unik_jadwal uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_skpd uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
	id_unik_sub_kegiatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
    id_kab_kota integer DEFAULT 0 NOT NULL,
    id_kecamatan integer DEFAULT 0 NOT NULL,
    id_kelurahan integer DEFAULT 0 NOT NULL,
	id_kab_kota_murni integer DEFAULT 0 NOT NULL,
    id_kecamatan_murni integer DEFAULT 0 NOT NULL,
    id_kelurahan_murni integer DEFAULT 0 NOT NULL,
    id_bl_lama integer DEFAULT 0 NOT NULL,
	id_sub_bl_lama integer DEFAULT 0 NOT NULL,
	id_detil_lokasi_lama integer DEFAULT 0 NOT NULL,
    created_at timestamp(6) without time zone DEFAULT now() NOT NULL,
    created_by integer DEFAULT 0 NOT NULL,
    updated_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    updated_by integer DEFAULT 0 NOT NULL,
    deleted_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
    deleted_by integer DEFAULT 0 NOT NULL
);

ALTER TABLE penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_pkey PRIMARY KEY (id_unik_lokasi_sub_kegiatan, tahun, id_daerah);
ALTER TABLE penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan ADD CONSTRAINT trn_lokasi_sub_kegiatan_unique_key UNIQUE (tahun, id_daerah, id_unik_jadwal, id_unik_skpd, id_unik_sub_skpd, id_unik_sub_kegiatan, id_kab_kota, id_kecamatan, id_kelurahan);

COMMENT ON TABLE penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan IS 'Tabel transaksi yang menyimpan detil lokasi pekerjaan dari suatu sub kegiatan.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_unik_lokasi_sub_kegiatan IS 'ID unik UUID sebagai ID primary key.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_bl_lama IS 'Primary key tabel d_bl lama.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_sub_bl_lama IS 'Primary key tabel d_sub_bl lama.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_detil_lokasi_lama IS 'Primary key tabel d_detil_lokasi_sub_bl lama.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.tahun IS 'Tahun anggaran sub kegiatan.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_daerah IS 'Pemerintah daerah pelaksana sub kegiatan.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_unik_jadwal IS 'ID jadwal tahapan anggaran.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_unik_skpd IS 'ID SKPD induk yang membawahi pelaksana kegiatan.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_unik_sub_skpd IS 'ID SKPD pelaksana kegiatan.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_unik_sub_kegiatan IS 'ID sub kegiatan yang sudah diinput dalam rencana kerja.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_kab_kota IS 'ID kab/kota sesuai data master daerah.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_kecamatan IS 'ID kab/kota sesuai data master kecamatan yang dipilih.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.id_kelurahan IS 'ID kelurahan/desa sesuai data master kelurahan yang dipilih.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.created_at IS 'Tanggal dan waktu data dibuat.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.created_by IS 'ID pengguna yang membuat data.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.updated_by IS 'ID pengguna yang memperbarui data.';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan.deleted_by IS 'ID pengguna yang menghapus data.';

CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_lokasi_sub_kegiatan_idx ON penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_lokasi_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_tahun_idx ON penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (tahun);
CREATE INDEX trn_lokasi_sub_kegiatan_id_daerah_idx ON penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_daerah);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_jadwal_idx ON penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_jadwal);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_skpd_idx ON penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_skpd_idx ON penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_skpd);
CREATE INDEX trn_lokasi_sub_kegiatan_id_unik_sub_kegiatan_idx ON penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_unik_sub_kegiatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kab_kota_idx ON penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kab_kota);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kecamatan_idx ON penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kecamatan);
CREATE INDEX trn_lokasi_sub_kegiatan_id_kelurahan_idx ON penetapan_pergeseran_perubahan.trn_lokasi_sub_kegiatan USING btree (id_kelurahan);