-- # $Id$ -- # $HeadURL$ -- # $Author$ -- DB Update Stand Rev 52567 - 11.12.2020 -- ASM (Global): certificate -- REP (Exercise): charge administration report 2 new columns -- EXM (Global): Unique key on exercise name (SVN 52447, 2020.11.11) -- AES (Global + Exercise): functional areas -- ASM (Global): certificate (SVN 52263, 28.10.2020) ALTER TABLE asm.asm_asset ADD COLUMN certificate bytea; -- REP (Exercise): 2 new columns in rep_charge_administration (SVN 52483 - 2020.11.18) SET SEARCH_PATH TO ex_NN; ALTER TABLE rep_charge_administration ADD COLUMN charge_planned INTEGER; ALTER TABLE rep_charge_administration ADD COLUMN charge_available INTEGER; -- EXM (Global): Unique key on exercise name (SVN 52447, 2020.11.11) ALTER TABLE IF EXISTS exm.exercise DROP CONSTRAINT IF EXISTS UQ_exercise_name CASCADE; ALTER TABLE exm.exercise ADD CONSTRAINT UQ_exercise_name UNIQUE (name); -- -- NLDEVCTRL-682, AES: FunctionalAreaTypes, Achtung: Übungsabhängige Änderungen unten dabei! - 03.11.2020 -- Begin -- -- GLOBAL -- Create user ets_aes SELECT create_user_if_not_exists('ets_aes'); GRANT ets_ro TO ets_aes; GRANT ets_aes TO ets_admin; -- Schema for Service AreaEffectManagement (AES) CREATE SCHEMA IF NOT EXISTS aes; ALTER SCHEMA aes OWNER TO ets_aes; GRANT ALL ON SCHEMA aes TO ets_admin; -- Usage for Service AreaEffectManagement (AES) GRANT USAGE ON SCHEMA aes TO ets_ro; -- Add Privileges ALTER DEFAULT PRIVILEGES IN SCHEMA aes GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE ON TABLES TO ets_aes; ALTER DEFAULT PRIVILEGES IN SCHEMA aes GRANT SELECT, REFERENCES ON TABLES TO ets_ro; ALTER DEFAULT PRIVILEGES IN SCHEMA aes GRANT EXECUTE ON FUNCTIONS TO ets_aes; ALTER DEFAULT PRIVILEGES IN SCHEMA aes GRANT ALL ON SEQUENCES TO ets_aes; SET SEARCH_PATH TO aes, PUBLIC; -- Drop tables/views/sequences/constraints ALTER TABLE IF EXISTS aes_functional_area_type DROP CONSTRAINT IF EXISTS PK_aes_functional_area_type_id CASCADE; ALTER TABLE IF EXISTS aes_functional_area_type DROP CONSTRAINT IF EXISTS FK_aes_functional_area_type_decon_mode_aes_operating_mode_id CASCADE; ALTER TABLE IF EXISTS aes_functional_area_type DROP CONSTRAINT IF EXISTS FK_aes_functional_area_type_maint_mode_aes_operating_mode_id CASCADE; ALTER TABLE IF EXISTS aes_functional_area_type DROP CONSTRAINT IF EXISTS FK_aes_functional_area_type_medic_mode_aes_operating_mode_id CASCADE; ALTER TABLE IF EXISTS aes_operating_mode DROP CONSTRAINT IF EXISTS PK_aes_operating_mode_id CASCADE; DROP TABLE IF EXISTS aes_functional_area_type CASCADE; DROP TABLE IF EXISTS aes_operating_mode CASCADE; -- Create tables CREATE TABLE IF NOT EXISTS aes_functional_area_type ( id integer, name text, point_symbol text, decon_mode integer, decon_time integer, maint_mode integer, maint_time integer, medic_mode integer, medic_time integer ); CREATE TABLE IF NOT EXISTS aes_operating_mode ( id integer DEFAULT nextval(( 'aes.aes_operating_mode_id_seq'::text)::regclass), name text ); -- Create sequence(s) CREATE SEQUENCE IF NOT EXISTS aes_operating_mode_id_seq INCREMENT 1 START 1 MINVALUE 1; -- Create primary keys ALTER TABLE IF EXISTS aes_functional_area_type ADD CONSTRAINT PK_aes_functional_area_type_id PRIMARY KEY (id); ALTER TABLE IF EXISTS aes_operating_mode ADD CONSTRAINT PK_aes_operating_mode_id PRIMARY KEY (id); -- Create foreign keys ALTER TABLE aes_functional_area_type ADD CONSTRAINT FK_aes_functional_area_type_decon_mode_aes_operating_mode_id FOREIGN KEY (decon_mode) REFERENCES aes_operating_mode (id) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE aes_functional_area_type ADD CONSTRAINT FK_aes_functional_area_type_maint_mode_aes_operating_mode_id FOREIGN KEY (maint_mode) REFERENCES aes_operating_mode (id) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE aes_functional_area_type ADD CONSTRAINT FK_aes_functional_area_type_medic_mode_aes_operating_mode_id FOREIGN KEY (medic_mode) REFERENCES aes_operating_mode (id) ON DELETE CASCADE ON UPDATE CASCADE; -- Inserts for static data i.e. enums INSERT INTO aes_operating_mode (id, name) VALUES (-1, 'OmNotAvailable'); INSERT INTO aes_operating_mode (id, name) VALUES (0, 'OmNotUsed'); INSERT INTO aes_operating_mode (id, name) VALUES (1, 'OmObserver'); INSERT INTO aes_operating_mode (id, name) VALUES (2, 'OmWaitingTime'); INSERT INTO aes.aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time) VALUES(0, 'Functional Area', '', 0, 0, 0, 0, 0, 0); INSERT INTO aes.aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time) VALUES(1, 'Casualty Collection Point', 'AP6D|CMPL|10012500003205000000', -1, 0, -1, 0, 2, 120); -- Verwundetensammelstelle, APP: 320500 INSERT INTO aes.aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time) VALUES(2, 'Medical Evacuation Pickup Point', 'AP6D|CMPL|10012500003211000000', -1, 0, -1, 0, 2, 90); -- Landezone, App: 321100 INSERT INTO aes.aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time) VALUES(3, 'Medical Treatment Facility, Cat. 1', 'AP6D|CMPL|10011000001614004200', -1, 0, -1, 0, 2, 60); -- Rettungsstation, APP: 161400/42/00 INSERT INTO aes.aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time) VALUES(4, 'Medical Treatment Facility, Cat. 3', 'AP6D|CMPL|10011000001614004400', -1, 0, -1, 0, 2, 30); -- Einsatzlazarett, APP: 161400/44/00 INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'FunctionalAreaType', 'Functional Area', 'Generic Functional Area'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'FunctionalAreaType', 'Casualty Collection Point', 'Casualty Collection Point'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'FunctionalAreaType', 'Medical Evacuation Pickup Point', 'Medical Evacuation Pickup Point'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'FunctionalAreaType', 'Medical Treatment Facility, Cat. 1', 'Medical Treatment Facility, Cat. 1'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'FunctionalAreaType', 'Medical Treatment Facility, Cat. 3', 'Medical Treatment Facility, Cat. 3'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('de_DE', 'name', 'FunctionalAreaType', 'Functional Area', 'Allgemeiner Funktionsraum'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('de_DE', 'name', 'FunctionalAreaType', 'Casualty Collection Point', 'Verwundetensammelstelle'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('de_DE', 'name', 'FunctionalAreaType', 'Medical Evacuation Pickup Point', 'MedEvac Landezone'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('de_DE', 'name', 'FunctionalAreaType', 'Medical Treatment Facility, Cat. 1', 'Einsatzlazarett'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('de_DE', 'name', 'FunctionalAreaType', 'Medical Treatment Facility, Cat. 3', 'Rettungsstation'); -- EXERCISE -- -- FOREACH Exercise BEGIN -- First replace "ex_NN" with "ex_70", "ex_71" etc. SET SEARCH_PATH TO ex_NN, PUBLIC; CREATE TABLE IF NOT EXISTS aes_functional_area_type ( id integer, name text, point_symbol text, decon_mode integer, decon_time integer, maint_mode integer, maint_time integer, medic_mode integer, medic_time integer ); ALTER TABLE IF EXISTS aes_functional_area_type ADD CONSTRAINT PK_aes_functional_area_type_id PRIMARY KEY (id); ALTER TABLE aes_functional_area_type OWNER TO ets_ex_NN; ALTER TABLE aes_functional_area ADD COLUMN functional_area_type_id integer DEFAULT 0; INSERT INTO aes_operating_mode (id, name) VALUES (-1, 'OmNotAvailable'); INSERT INTO aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time) VALUES(0, 'Functional Area', '', 0, 0, 0, 0, 0, 0); INSERT INTO aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time) VALUES(1, 'Casualty Collection Point', 'AP6D|CMPL|10012500003205000000', -1, 0, -1, 0, 2, 120); -- Verwundetensammelstelle, APP: 320500 INSERT INTO aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time) VALUES(2, 'Medical Evacuation Pickup Point', 'AP6D|CMPL|10012500003211000000', -1, 0, -1, 0, 2, 90); -- Landezone, App: 321100 INSERT INTO aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time) VALUES(3, 'Medical Treatment Facility, Cat. 1', 'AP6D|CMPL|10011000001614004200', -1, 0, -1, 0, 2, 60); -- Rettungsstation, APP: 161400/42/00 INSERT INTO aes_functional_area_type(id, name, point_symbol, decon_mode, decon_time, maint_mode, maint_time, medic_mode, medic_time) VALUES(4, 'Medical Treatment Facility, Cat. 3', 'AP6D|CMPL|10011000001614004400', -1, 0, -1, 0, 2, 30); -- Einsatzlazarett, APP: 161400/44/00 ALTER TABLE aes_functional_area ADD CONSTRAINT FK_aes_functional_area_functional_area_type_id_aes_functional_a FOREIGN KEY (functional_area_type_id) REFERENCES aes_functional_area_type (id) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE rec_functional_area ADD COLUMN functional_area_type_id integer DEFAULT 0; DROP VIEW IF EXISTS aes_functional_area_view; CREATE OR REPLACE VIEW aes_functional_area_view AS SELECT aes_entity.id AS id, aes_entity.charge_type_id AS charge_type_id, aes_entity.effect_state_id AS effect_state_id, aes_entity.party_id AS party_id, aes_entity.participant_id AS participant_id, aes_entity.effect_duration AS effect_duration, aes_entity.effect_start AS effect_start, aes_entity.name AS name, aes_entity.effect_marking_in_ta AS effect_marking_in_ta, aes_entity.external_id AS external_id, aes_functional_area.entity_id AS entity_id, aes_functional_area.point_symbol AS point_symbol, aes_functional_area.position_x AS position_x, aes_functional_area.position_y AS position_y, aes_functional_area.width AS width, aes_functional_area.length AS length, aes_functional_area.functional_area_type_id AS functional_area_type_id, aes_functional_area.decon_mode AS decon_mode, aes_functional_area.decon_time AS decon_time, aes_functional_area.maint_mode AS maint_mode, aes_functional_area.maint_time AS maint_time, aes_functional_area.medic_mode AS medic_mode, aes_functional_area.medic_time AS medic_time, aes_functional_area.id AS aes_functional_area_id FROM aes_functional_area, aes_entity WHERE aes_entity.id = aes_functional_area.entity_id; ALTER VIEW aes_functional_area_view OWNER TO ets_ex_NN; -- -- FOREACH Exercise END -- -- -- End of -- NLDEVCTRL-682, AES: FunctionalAreaTypes, Achtung: Übungsabhängige Änderungen unten dabei! - 03.11.2020 --