CREATE TABLE IF NOT EXISTS public.mst_label_unggulan (
	id_unik_label_unggulan uuid DEFAULT public.uuid_generate_v7() NOT NULL,
    id_label_giat_lama integer DEFAULT 0 NOT NULL,
    tahun integer DEFAULT 0 NOT NULL,
    id_daerah integer DEFAULT 0 NOT NULL,
    locked boolean DEFAULT false NOT NULL,
    nama_label_unggulan text DEFAULT ''::text 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.mst_label_unggulan ADD CONSTRAINT mst_label_unggulan_pkey PRIMARY KEY (id_unik_label_unggulan, tahun, id_daerah);
ALTER TABLE public.mst_label_unggulan ADD CONSTRAINT mst_label_unggulan_unique_key UNIQUE (tahun, id_daerah, nama_label_unggulan);

COMMENT ON TABLE public.mst_label_unggulan IS 'Tabel berisi label atau tagging program unggulan dari masing masing pemerintah daerah.';
COMMENT ON COLUMN public.mst_label_unggulan.id_unik_label_unggulan IS 'ID unik UUID sebagai ID primary key.';
COMMENT ON COLUMN public.mst_label_unggulan.id_label_giat_lama IS 'Primary key tabel lama.';
COMMENT ON COLUMN public.mst_label_unggulan.tahun IS 'Tahun data label unggulan.';
COMMENT ON COLUMN public.mst_label_unggulan.locked IS 'Status label dapat dipilih atau tidak (true/false).';
COMMENT ON COLUMN public.mst_label_unggulan.id_daerah IS 'Daerah pengguna data label unggulan.';
COMMENT ON COLUMN public.mst_label_unggulan.nama_label_unggulan IS 'Nama label unggulan atau program unggulan kepala daerah.';
COMMENT ON COLUMN public.mst_label_unggulan.created_at IS 'Tanggal dan waktu data dibuat.';
COMMENT ON COLUMN public.mst_label_unggulan.created_by IS 'ID pengguna yang membuat data.';
COMMENT ON COLUMN public.mst_label_unggulan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
COMMENT ON COLUMN public.mst_label_unggulan.updated_by IS 'ID pengguna yang memperbarui data.';
COMMENT ON COLUMN public.mst_label_unggulan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN public.mst_label_unggulan.deleted_by IS 'ID pengguna yang menghapus data.';

CREATE INDEX mst_label_unggulan_id_unik_label_unggulan_idx ON public.mst_label_unggulan USING btree (id_unik_label_unggulan);
CREATE INDEX mst_label_unggulan_tahun_idx ON public.mst_label_unggulan USING btree (tahun);
CREATE INDEX mst_label_unggulan_id_daerah_idx ON public.mst_label_unggulan USING btree (id_daerah);
CREATE INDEX mst_label_unggulan_nama_label_unggulan_idx ON public.mst_label_unggulan USING btree (nama_label_unggulan);
