61 lines
2.9 KiB
MySQL
61 lines
2.9 KiB
MySQL
|
|
-- =======================
|
||
|
|
-- 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');
|