Init
This commit is contained in:
@@ -1,18 +1,5 @@
|
||||
BEGIN;
|
||||
|
||||
-- =========================
|
||||
-- Departments (as requested)
|
||||
-- =========================
|
||||
-- Root org namespace is "eslogad" in ltree path
|
||||
INSERT INTO departments (name, code, path) VALUES
|
||||
('RENBINMINLOG', 'renbinminlog', 'eslogad.renbinminlog'),
|
||||
('FASKON BMN', 'faskon_bmn', 'eslogad.faskon_bmn'),
|
||||
('BEKPALKES', 'bekpalkes', 'eslogad.bekpalkes')
|
||||
ON CONFLICT (code) DO UPDATE
|
||||
SET name = EXCLUDED.name,
|
||||
path = EXCLUDED.path,
|
||||
updated_at = CURRENT_TIMESTAMP;
|
||||
|
||||
-- =========================
|
||||
-- Positions (hierarchy)
|
||||
-- =========================
|
||||
@@ -20,80 +7,80 @@ INSERT INTO departments (name, code, path) VALUES
|
||||
-- - superadmin is a separate root
|
||||
-- - eslogad.aslog is head; waaslog_* under aslog
|
||||
-- - paban_* under each waaslog_*; pabandya_* under its paban_*
|
||||
INSERT INTO positions (name, code, path) VALUES
|
||||
INSERT INTO departments (name, code, path) VALUES
|
||||
-- ROOTS
|
||||
('SUPERADMIN', 'superadmin', 'superadmin'),
|
||||
('ASLOG', 'aslog', 'eslogad.aslog'),
|
||||
('SUPERADMIN', 'superadmin', 'superadmin'),
|
||||
('ASLOG', 'aslog', 'eslogad.aslog'),
|
||||
|
||||
-- WAASLOG under ASLOG
|
||||
('WAASLOG RENBINMINLOG', 'waaslogrenbinminlog', 'eslogad.aslog.waaslog_renbinminlog'),
|
||||
('WAASLOG FASKON BMN', 'waaslogfaskonbmn', 'eslogad.aslog.waaslog_faskon_bmn'),
|
||||
('WAASLOG BEKPALKES', 'waaslogbekpalkes', 'eslogad.aslog.waaslog_bekpalkes'),
|
||||
-- WAASLOG under ASLOG
|
||||
('WAASLOG RENBINMINLOG', 'waaslogrenbinminlog', 'eslogad.aslog.waaslog_renbinminlog'),
|
||||
('WAASLOG FASKON BMN', 'waaslogfaskonbmn', 'eslogad.aslog.waaslog_faskon_bmn'),
|
||||
('WAASLOG BEKPALKES', 'waaslogbekpalkes', 'eslogad.aslog.waaslog_bekpalkes'),
|
||||
|
||||
-- Other posts directly under ASLOG
|
||||
('KADISADAAD', 'kadisadaad', 'eslogad.aslog.kadisadaad'),
|
||||
('KATUUD', 'katuud', 'eslogad.aslog.katuud'),
|
||||
('SPRI', 'spri', 'eslogad.aslog.spri'),
|
||||
-- Other posts directly under ASLOG
|
||||
('KADISADAAD', 'kadisadaad', 'eslogad.aslog.kadisadaad'),
|
||||
('KATUUD', 'katuud', 'eslogad.aslog.katuud'),
|
||||
('SPRI', 'spri', 'eslogad.aslog.spri'),
|
||||
|
||||
-- PABAN under WAASLOG RENBINMINLOG
|
||||
('PABAN I/REN', 'paban-I-ren', 'eslogad.aslog.waaslog_renbinminlog.paban_I_ren'),
|
||||
('PABAN II/BINMINLOG', 'paban-II-binminlog', 'eslogad.aslog.waaslog_renbinminlog.paban_II_binminlog'),
|
||||
-- PABAN under WAASLOG RENBINMINLOG
|
||||
('PABAN I/REN', 'paban-I-ren', 'eslogad.aslog.waaslog_renbinminlog.paban_I_ren'),
|
||||
('PABAN II/BINMINLOG', 'paban-II-binminlog', 'eslogad.aslog.waaslog_renbinminlog.paban_II_binminlog'),
|
||||
|
||||
-- PABAN under WAASLOG FASKON BMN
|
||||
('PABAN III/FASKON', 'paban-III-faskon', 'eslogad.aslog.waaslog_faskon_bmn.paban_III_faskon'),
|
||||
('PABAN IV/BMN', 'paban-iv-bmn', 'eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn'),
|
||||
-- PABAN under WAASLOG FASKON BMN
|
||||
('PABAN III/FASKON', 'paban-III-faskon', 'eslogad.aslog.waaslog_faskon_bmn.paban_III_faskon'),
|
||||
('PABAN IV/BMN', 'paban-iv-bmn', 'eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn'),
|
||||
|
||||
-- PABAN under WAASLOG BEKPALKES
|
||||
('PABAN V/BEK', 'paban-v-bek', 'eslogad.aslog.waaslog_bekpalkes.paban_V_bek'),
|
||||
('PABAN VI/ALPAL', 'paban-vi-alpal', 'eslogad.aslog.waaslog_bekpalkes.paban_VI_alpal'),
|
||||
('PABAN VII/KES', 'paban-vii-kes', 'eslogad.aslog.waaslog_bekpalkes.paban_VII_kes'),
|
||||
-- PABAN under WAASLOG BEKPALKES
|
||||
('PABAN V/BEK', 'paban-v-bek', 'eslogad.aslog.waaslog_bekpalkes.paban_V_bek'),
|
||||
('PABAN VI/ALPAL', 'paban-vi-alpal', 'eslogad.aslog.waaslog_bekpalkes.paban_VI_alpal'),
|
||||
('PABAN VII/KES', 'paban-vii-kes', 'eslogad.aslog.waaslog_bekpalkes.paban_VII_kes'),
|
||||
|
||||
-- PABANDYA under PABAN I/REN
|
||||
('PABANDYA 1 / RENPROGGAR', 'pabandya-1-renproggar', 'eslogad.aslog.waaslog_renbinminlog.paban_I_ren.pabandya_1_renproggar'),
|
||||
('PABANDYA 2 / DALWASGAR', 'pabandya-2-dalwasgar', 'eslogad.aslog.waaslog_renbinminlog.paban_I_ren.pabandya_2_dalwasgar'),
|
||||
('PABANDYA 3 / ANEVDATA', 'pabandya-3-anevdata', 'eslogad.aslog.waaslog_renbinminlog.paban_I_ren.pabandya_3_anevdata'),
|
||||
-- PABANDYA under PABAN I/REN
|
||||
('PABANDYA 1 / RENPROGGAR', 'pabandya-1-renproggar', 'eslogad.aslog.waaslog_renbinminlog.paban_I_ren.pabandya_1_renproggar'),
|
||||
('PABANDYA 2 / DALWASGAR', 'pabandya-2-dalwasgar', 'eslogad.aslog.waaslog_renbinminlog.paban_I_ren.pabandya_2_dalwasgar'),
|
||||
('PABANDYA 3 / ANEVDATA', 'pabandya-3-anevdata', 'eslogad.aslog.waaslog_renbinminlog.paban_I_ren.pabandya_3_anevdata'),
|
||||
|
||||
-- PABANDYA under PABAN II/BINMINLOG
|
||||
('PABANDYA 1 / MINLOG', 'pabandya-1-minlog', 'eslogad.aslog.waaslog_renbinminlog.paban_II_binminlog.pabandya_1_minlog'),
|
||||
('PABANDYA 2 / HIBAHKOD', 'pabandya-2-hibahkod', 'eslogad.aslog.waaslog_renbinminlog.paban_II_binminlog.pabandya_2_hibahkod'),
|
||||
('PABANDYA 3 / PUSMAT', 'pabandya-3-pusmat', 'eslogad.aslog.waaslog_renbinminlog.paban_II_binminlog.pabandya_3_pusmat'),
|
||||
-- PABANDYA under PABAN II/BINMINLOG
|
||||
('PABANDYA 1 / MINLOG', 'pabandya-1-minlog', 'eslogad.aslog.waaslog_renbinminlog.paban_II_binminlog.pabandya_1_minlog'),
|
||||
('PABANDYA 2 / HIBAHKOD', 'pabandya-2-hibahkod', 'eslogad.aslog.waaslog_renbinminlog.paban_II_binminlog.pabandya_2_hibahkod'),
|
||||
('PABANDYA 3 / PUSMAT', 'pabandya-3-pusmat', 'eslogad.aslog.waaslog_renbinminlog.paban_II_binminlog.pabandya_3_pusmat'),
|
||||
|
||||
-- PABANDYA under PABAN IV/BMN
|
||||
('PABANDYA 1 / TANAH', 'pabandya-1-tanah', 'eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_1_tanah'),
|
||||
('PABANDYA 2 / PANGKALAN KONSTRUKSI','pabandya-2-pangkalankonstruksi','eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_2_pangkalan_konstruksi'),
|
||||
('PABANDYA 3 / FASMATZI', 'pabandya-3-fasmatzi', 'eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_3_fasmatzi'),
|
||||
-- PABANDYA under PABAN IV/BMN
|
||||
('PABANDYA 1 / TANAH', 'pabandya-1-tanah', 'eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_1_tanah'),
|
||||
('PABANDYA 2 / PANGKALAN KONSTRUKSI','pabandya-2-pangkalankonstruksi','eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_2_pangkalan_konstruksi'),
|
||||
('PABANDYA 3 / FASMATZI', 'pabandya-3-fasmatzi', 'eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_3_fasmatzi'),
|
||||
|
||||
-- PABANDYA under PABAN IV/BMN (AKUN group)
|
||||
('PABANDYA 1 / AKUN BB', 'pabandya-1-akunbb', 'eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_1_akun_bb'),
|
||||
('PABANDYA 2 / AKUN BTB', 'pabandya-2-akunbtb', 'eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_2_akun_btb'),
|
||||
('PABANDYA 3 / SISFO BMN DAN UAKPB-KP','pabandya-3-sisfo-bmn-uakpbkp','eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_3_sisfo_bmn_uakpb_kp'),
|
||||
-- PABANDYA under PABAN IV/BMN (AKUN group)
|
||||
('PABANDYA 1 / AKUN BB', 'pabandya-1-akunbb', 'eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_1_akun_bb'),
|
||||
('PABANDYA 2 / AKUN BTB', 'pabandya-2-akunbtb', 'eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_2_akun_btb'),
|
||||
('PABANDYA 3 / SISFO BMN DAN UAKPB-KP','pabandya-3-sisfo-bmn-uakpbkp','eslogad.aslog.waaslog_faskon_bmn.paban_IV_bmn.pabandya_3_sisfo_bmn_uakpb_kp'),
|
||||
|
||||
-- PABANDYA under PABAN III/FASKON
|
||||
('PABANDYA 1 / JATOPTIKMU', 'pabandya-1-jatoptikmu', 'eslogad.aslog.waaslog_faskon_bmn.paban_III_faskon.pabandya_1_jatoptikmu'),
|
||||
('PABANDYA 2 / RANTEKMEK', 'pabandya-2-rantekmek', 'eslogad.aslog.waaslog_faskon_bmn.paban_III_faskon.pabandya_2_rantekmek'),
|
||||
('PABANDYA 3 / ALHUBTOPPALSUS', 'pabandya-3-alhubtoppalsus', 'eslogad.aslog.waaslog_faskon_bmn.paban_III_faskon.pabandya_3_alhubtoppalsus'),
|
||||
('PABANDYA 4 / PESUD', 'pabandya-4-pesud', 'eslogad.aslog.waaslog_faskon_bmn.paban_III_faskon.pabandya_4_pesud'),
|
||||
-- PABANDYA under PABAN III/FASKON
|
||||
('PABANDYA 1 / JATOPTIKMU', 'pabandya-1-jatoptikmu', 'eslogad.aslog.waaslog_faskon_bmn.paban_III_faskon.pabandya_1_jatoptikmu'),
|
||||
('PABANDYA 2 / RANTEKMEK', 'pabandya-2-rantekmek', 'eslogad.aslog.waaslog_faskon_bmn.paban_III_faskon.pabandya_2_rantekmek'),
|
||||
('PABANDYA 3 / ALHUBTOPPALSUS', 'pabandya-3-alhubtoppalsus', 'eslogad.aslog.waaslog_faskon_bmn.paban_III_faskon.pabandya_3_alhubtoppalsus'),
|
||||
('PABANDYA 4 / PESUD', 'pabandya-4-pesud', 'eslogad.aslog.waaslog_faskon_bmn.paban_III_faskon.pabandya_4_pesud'),
|
||||
|
||||
-- PABANDYA under PABAN VII/KES
|
||||
('PABANDYA 1 / BEKKES', 'pabandya-1-bekkes', 'eslogad.aslog.waaslog_bekpalkes.paban_VII_kes.pabandya_1_bekkes'),
|
||||
('PABANDYA 2 / ALKES', 'pabandya-2-alkes', 'eslogad.aslog.waaslog_bekpalkes.paban_VII_kes.pabandya_2_alkes')
|
||||
ON CONFLICT (code) DO UPDATE
|
||||
SET name = EXCLUDED.name,
|
||||
path = EXCLUDED.path,
|
||||
updated_at = CURRENT_TIMESTAMP;
|
||||
-- PABANDYA under PABAN VII/KES
|
||||
('PABANDYA 1 / BEKKES', 'pabandya-1-bekkes', 'eslogad.aslog.waaslog_bekpalkes.paban_VII_kes.pabandya_1_bekkes'),
|
||||
('PABANDYA 2 / ALKES', 'pabandya-2-alkes', 'eslogad.aslog.waaslog_bekpalkes.paban_VII_kes.pabandya_2_alkes')
|
||||
ON CONFLICT (code) DO UPDATE
|
||||
SET name = EXCLUDED.name,
|
||||
path = EXCLUDED.path,
|
||||
updated_at = CURRENT_TIMESTAMP;
|
||||
|
||||
-- =========================
|
||||
-- SUPERADMIN role (minimal)
|
||||
-- =========================
|
||||
INSERT INTO roles (name, code, description) VALUES
|
||||
('SUPERADMIN', 'superadmin', 'Full system access and management'),
|
||||
('ADMIN', 'admin', 'Manage users, letters, and settings within their department'),
|
||||
('HEAD', 'head', 'Approve outgoing letters and manage dispositions in their department'),
|
||||
('STAFF', 'staff', 'Create letters, process assigned dispositions')
|
||||
ON CONFLICT (code) DO UPDATE
|
||||
SET name = EXCLUDED.name,
|
||||
description = EXCLUDED.description,
|
||||
updated_at = CURRENT_TIMESTAMP;
|
||||
('SUPERADMIN', 'superadmin', 'Full system access and management'),
|
||||
('ADMIN', 'admin', 'Manage users, letters, and settings within their department'),
|
||||
('HEAD', 'head', 'Approve outgoing letters and manage dispositions in their department'),
|
||||
('STAFF', 'staff', 'Create letters, process assigned dispositions')
|
||||
ON CONFLICT (code) DO UPDATE
|
||||
SET name = EXCLUDED.name,
|
||||
description = EXCLUDED.description,
|
||||
updated_at = CURRENT_TIMESTAMP;
|
||||
|
||||
-- =========================
|
||||
-- Users (seed 1 superadmin)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
BEGIN;
|
||||
DROP TRIGGER IF EXISTS trg_app_settings_updated_at ON app_settings;
|
||||
DROP TABLE IF EXISTS app_settings;
|
||||
COMMIT;
|
||||
@@ -0,0 +1,21 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS app_settings (
|
||||
key TEXT PRIMARY KEY,
|
||||
value JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TRIGGER trg_app_settings_updated_at
|
||||
BEFORE UPDATE ON app_settings
|
||||
FOR EACH ROW EXECUTE FUNCTION set_updated_at();
|
||||
|
||||
INSERT INTO app_settings(key, value)
|
||||
VALUES
|
||||
('INCOMING_LETTER_PREFIX', '{"value": "ESLI"}'::jsonb),
|
||||
('INCOMING_LETTER_SEQUENCE', '{"value": 0}'::jsonb),
|
||||
('INCOMING_LETTER_RECIPIENTS', '{"department_codes": ["aslog"]}'::jsonb)
|
||||
ON CONFLICT (key) DO NOTHING;
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user