feat: add Node ACS admin workflows
This commit is contained in:
49
migrations/006_admin_config.sql
Normal file
49
migrations/006_admin_config.sql
Normal file
@@ -0,0 +1,49 @@
|
||||
CREATE TABLE IF NOT EXISTS purpose_codes (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT now(),
|
||||
code VARCHAR(40) NOT NULL UNIQUE,
|
||||
name VARCHAR(80) NOT NULL,
|
||||
sort_order INTEGER NOT NULL,
|
||||
active BOOLEAN NOT NULL,
|
||||
custom_allowed BOOLEAN NOT NULL
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_purpose_code_active_sort ON purpose_codes (active, sort_order);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS system_settings (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT now(),
|
||||
setting_key VARCHAR(80) NOT NULL UNIQUE,
|
||||
setting_value VARCHAR(255)
|
||||
);
|
||||
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS work_name VARCHAR(255);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS control_name VARCHAR(80);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS control_team VARCHAR(80);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS control_contact VARCHAR(60);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS watcher1_name VARCHAR(80);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS watcher1_team VARCHAR(80);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS watcher1_contact VARCHAR(60);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS watcher2_name VARCHAR(80);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS watcher2_team VARCHAR(80);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS watcher2_contact VARCHAR(60);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS purpose_code VARCHAR(40);
|
||||
ALTER TABLE visit_requests ADD COLUMN IF NOT EXISTS purpose_detail VARCHAR(255);
|
||||
|
||||
INSERT INTO purpose_codes (created_at, updated_at, code, name, sort_order, active, custom_allowed)
|
||||
VALUES
|
||||
(now(), now(), 'WORK', '작업', 10, TRUE, FALSE),
|
||||
(now(), now(), 'INSPECTION', '점검', 20, TRUE, FALSE),
|
||||
(now(), now(), 'DELIVERY', '납품', 30, TRUE, FALSE),
|
||||
(now(), now(), 'MEETING', '회의', 40, TRUE, FALSE),
|
||||
(now(), now(), 'VISIT', '방문', 50, TRUE, FALSE),
|
||||
(now(), now(), 'ETC', '기타', 100, TRUE, TRUE)
|
||||
ON CONFLICT (code) DO NOTHING;
|
||||
|
||||
INSERT INTO system_settings (created_at, updated_at, setting_key, setting_value)
|
||||
VALUES
|
||||
(now(), now(), 'watcher1.name', '류관순'),
|
||||
(now(), now(), 'watcher1.team', 'IT전략국'),
|
||||
(now(), now(), 'watcher1.contact', '313')
|
||||
ON CONFLICT (setting_key) DO NOTHING;
|
||||
43
migrations/007_teams.sql
Normal file
43
migrations/007_teams.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
CREATE TABLE IF NOT EXISTS teams (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT now(),
|
||||
code VARCHAR(40) NOT NULL UNIQUE,
|
||||
name VARCHAR(80) NOT NULL UNIQUE,
|
||||
active BOOLEAN NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS team_default_roles (
|
||||
team_id BIGINT NOT NULL REFERENCES teams (id) ON DELETE CASCADE,
|
||||
role VARCHAR(20) NOT NULL,
|
||||
PRIMARY KEY (team_id, role)
|
||||
);
|
||||
|
||||
ALTER TABLE users ADD COLUMN IF NOT EXISTS team_id BIGINT REFERENCES teams (id);
|
||||
|
||||
INSERT INTO teams (created_at, updated_at, code, name, active)
|
||||
VALUES
|
||||
(now(), now(), 'ITOPS', 'IT운영팀', TRUE),
|
||||
(now(), now(), 'DEV1', '개발1팀', TRUE),
|
||||
(now(), now(), 'SEC', '보안팀', TRUE)
|
||||
ON CONFLICT (code) DO UPDATE
|
||||
SET name = EXCLUDED.name,
|
||||
active = EXCLUDED.active,
|
||||
updated_at = now();
|
||||
|
||||
INSERT INTO team_default_roles (team_id, role)
|
||||
SELECT id, 'ADMIN' FROM teams WHERE code = 'ITOPS'
|
||||
ON CONFLICT DO NOTHING;
|
||||
INSERT INTO team_default_roles (team_id, role)
|
||||
SELECT id, 'HOST' FROM teams WHERE code = 'DEV1'
|
||||
ON CONFLICT DO NOTHING;
|
||||
INSERT INTO team_default_roles (team_id, role)
|
||||
SELECT id, 'SECURITY' FROM teams WHERE code = 'SEC'
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
UPDATE users SET team_id = (SELECT id FROM teams WHERE code = 'ITOPS'), department = 'IT운영팀'
|
||||
WHERE username IN ('admin', 'a') AND team_id IS NULL;
|
||||
UPDATE users SET team_id = (SELECT id FROM teams WHERE code = 'DEV1'), department = '개발1팀'
|
||||
WHERE username IN ('host', 'h') AND team_id IS NULL;
|
||||
UPDATE users SET team_id = (SELECT id FROM teams WHERE code = 'SEC'), department = '보안팀'
|
||||
WHERE username IN ('security', 's') AND team_id IS NULL;
|
||||
Reference in New Issue
Block a user