-- ======================= -- TITLES -- ======================= CREATE TABLE IF NOT EXISTS titles ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name TEXT NOT NULL, -- e.g., "Senior Software Engineer" code TEXT UNIQUE, -- e.g., "senior-software-engineer" description TEXT, -- optional: extra details created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP ); -- Trigger for updated_at CREATE TRIGGER trg_titles_updated_at BEFORE UPDATE ON titles FOR EACH ROW EXECUTE FUNCTION set_updated_at(); -- Perwira Tinggi (High-ranking Officers) INSERT INTO titles (name, code, description) VALUES ('Jenderal', 'jenderal', 'Pangkat tertinggi di TNI AD'), ('Letnan Jenderal', 'letnan-jenderal', 'Pangkat tinggi di bawah Jenderal'), ('Mayor Jenderal', 'mayor-jenderal', 'Pangkat tinggi di bawah Letnan Jenderal'), ('Brigadir Jenderal', 'brigadir-jenderal', 'Pangkat tinggi di bawah Mayor Jenderal'); -- Perwira Menengah (Middle-ranking Officers) INSERT INTO titles (name, code, description) VALUES ('Kolonel', 'kolonel', 'Pangkat perwira menengah tertinggi'), ('Letnan Kolonel', 'letnan-kolonel', 'Pangkat perwira menengah di bawah Kolonel'), ('Mayor', 'mayor', 'Pangkat perwira menengah di bawah Letnan Kolonel'); -- Perwira Pertama (Junior Officers) INSERT INTO titles (name, code, description) VALUES ('Kapten', 'kapten', 'Pangkat perwira pertama tertinggi'), ('Letnan Satu', 'letnan-satu', 'Pangkat perwira pertama di bawah Kapten'), ('Letnan Dua', 'letnan-dua', 'Pangkat perwira pertama di bawah Letnan Satu'); -- Bintara Tinggi (Senior NCOs) INSERT INTO titles (name, code, description) VALUES ('Pembantu Letnan Satu', 'pembantu-letnan-satu', 'Pangkat bintara tinggi tertinggi'), ('Pembantu Letnan Dua', 'pembantu-letnan-dua', 'Pangkat bintara tinggi di bawah Pelda'); -- Bintara (NCOs) INSERT INTO titles (name, code, description) VALUES ('Sersan Mayor', 'sersan-mayor', 'Pangkat bintara di bawah Pelda'), ('Sersan Kepala', 'sersan-kepala', 'Pangkat bintara di bawah Serma'), ('Sersan Satu', 'sersan-satu', 'Pangkat bintara di bawah Serka'), ('Sersan Dua', 'sersan-dua', 'Pangkat bintara di bawah Sertu'); -- Tamtama Tinggi (Senior Enlisted) INSERT INTO titles (name, code, description) VALUES ('Kopral Kepala', 'kopral-kepala', 'Pangkat tamtama tinggi tertinggi'), ('Kopral Satu', 'kopral-satu', 'Pangkat tamtama tinggi di bawah Kopka'), ('Kopral Dua', 'kopral-dua', 'Pangkat tamtama tinggi di bawah Koptu'); -- Tamtama (Enlisted) INSERT INTO titles (name, code, description) VALUES ('Prajurit Kepala', 'prajurit-kepala', 'Pangkat tamtama di bawah Kopda'), ('Prajurit Satu', 'prajurit-satu', 'Pangkat tamtama di bawah Prada'), ('Prajurit Dua', 'prajurit-dua', 'Pangkat tamtama terendah');