Files
qt5-legatus-legacy/Lts/Tools/DBUpdate/updates/guez/2.124_guez_ppm_mission.upd
T
2026-08-13 18:33:10 +02:00

122 lines
5.1 KiB
Plaintext
Executable File

-- $Id: 2.95_guez_pdm_charge_type_pzabwmiv.upd 61535 2024-01-25 08:18:08Z rathje $
-- $HeadURL: svn://slssvn/TDS/branches/product/devel/trunk/Lts/Tools/DBUpdate/updates/guez/2.95_guez_pdm_charge_type_pzabwmiv.upd $
-- $Author: rathje $
----------------------------------------------------------------------------------
-- INFO: [ETBUAS-77] New Tables ppm_mission_*
-- PROJECT: SWP
-- DATE: 2025-08-04
-- VERSION: 2.124
----------------------------------------------------------------------------------
-- GLOBAL: NONE;
BEGIN;
COMMIT;
-- EXERCISE: ALL;
BEGIN;
-- drop
DROP SEQUENCE IF EXISTS ppm_mission_action_id_seq;
DROP SEQUENCE IF EXISTS ppm_mission_item_id_seq;
DROP SEQUENCE IF EXISTS ppm_mission_plan_id_seq;
DROP SEQUENCE IF EXISTS rec_mission_plan_rec_id_seq;
DROP TABLE IF EXISTS ppm_mission_action CASCADE;
DROP TABLE IF EXISTS ppm_mission_action_type CASCADE;
DROP TABLE IF EXISTS ppm_mission_item CASCADE;
DROP TABLE IF EXISTS ppm_mission_plan CASCADE;
DROP TABLE IF EXISTS rec_mission_plan CASCADE;
-- create tables
CREATE TABLE IF NOT EXISTS ppm_mission_action (
id integer DEFAULT nextval(( 'ppm_mission_action_id_seq'::text)::regclass),
element_number integer, -- Sorting of items that belong to the same MissionItem
name text,
duration integer,
mission_action_type_id integer,
properties jsonb,
mission_item_id integer,
fulfilled bigint -- Timestamp when the action was fulfilled
);
COMMENT ON COLUMN ppm_mission_action.element_number IS 'Sorting of items that belong to the same MissionItem';
COMMENT ON COLUMN ppm_mission_action.fulfilled IS 'Timestamp when the action was fulfilled';
CREATE TABLE IF NOT EXISTS ppm_mission_action_type (
id integer,
name text
);
CREATE TABLE IF NOT EXISTS ppm_mission_item (
id integer DEFAULT nextval(( 'ppm_mission_item_id_seq'::text)::regclass),
element_number integer, -- Sorting of items within a mission plan
name text,
location_x double precision,
location_y double precision,
location_z double precision,
time_offset integer,
mission_plan_id integer
);
COMMENT ON COLUMN ppm_mission_item.element_number IS 'Sorting of items within a mission plan';
COMMENT ON COLUMN ppm_mission_item.element_number IS 'Sorting of items within a mission plan';
CREATE TABLE IF NOT EXISTS ppm_mission_plan (
id integer DEFAULT nextval(( 'ppm_mission_plan_id_seq'::text)::regclass),
name text,
mission_start bigint,
participant_id integer,
jump_to_start boolean,
repeat boolean,
aborted boolean
);
CREATE TABLE IF NOT EXISTS rec_mission_plan (
fulfilled bigint,
id integer,
items jsonb,
items_fulfilled integer,
jump_to_start boolean,
mission_start bigint,
name text,
participant_id integer,
properties text,
repeat boolean,
aborted boolean,
sample_time bigint,
rec_id bigint DEFAULT nextval(( 'rec_mission_plan_rec_id_seq'::text)::regclass),
dds_is_alive boolean DEFAULT true,
insert_time bigint DEFAULT (extract(epoch from now()) * 1000)
);
COMMENT ON TABLE rec_mission_plan IS 'recorded data for topic MissionPlan';
-- create sequences
CREATE SEQUENCE IF NOT EXISTS ppm_mission_action_id_seq INCREMENT 1 START 1 MINVALUE 1;
CREATE SEQUENCE IF NOT EXISTS ppm_mission_item_id_seq INCREMENT 1 START 1 MINVALUE 1;
CREATE SEQUENCE IF NOT EXISTS ppm_mission_plan_id_seq INCREMENT 1 START 1 MINVALUE 1;
CREATE SEQUENCE IF NOT EXISTS rec_mission_plan_rec_id_seq INCREMENT 1 START 1 MINVALUE 1;
ALTER TABLE IF EXISTS ppm_mission_action ADD CONSTRAINT PK_ppm_mission_action_id PRIMARY KEY (id);
ALTER TABLE IF EXISTS ppm_mission_action_type ADD CONSTRAINT PK_ppm_mission_action_type_id PRIMARY KEY (id);
ALTER TABLE IF EXISTS ppm_mission_item ADD CONSTRAINT PK_ppm_mission_item_id PRIMARY KEY (id);
ALTER TABLE IF EXISTS ppm_mission_plan ADD CONSTRAINT PK_ppm_mission_plan_id PRIMARY KEY (id);
ALTER TABLE IF EXISTS rec_mission_plan ADD CONSTRAINT PK_rec_mission_plan_rec_id PRIMARY KEY (rec_id);
ALTER TABLE ppm_mission_action ADD CONSTRAINT FK_ppm_mission_action_mission_action_type_id_ppm_mission_action
FOREIGN KEY (mission_action_type_id) REFERENCES ppm_mission_action_type (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ppm_mission_action ADD CONSTRAINT FK_ppm_mission_action_mission_item_id_ppm_mission_item_id
FOREIGN KEY (mission_item_id) REFERENCES ppm_mission_item (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ppm_mission_item ADD CONSTRAINT FK_ppm_mission_item_mission_plan_id_ppm_mission_plan_id
FOREIGN KEY (mission_plan_id) REFERENCES ppm_mission_plan (id) ON DELETE CASCADE ON UPDATE CASCADE;
INSERT INTO ppm_mission_action_type (id, name) VALUES (0, 'Undefined');
INSERT INTO ppm_mission_action_type (id, name) VALUES (1, 'MoveTo');
INSERT INTO ppm_mission_action_type (id, name) VALUES (2, 'Loiter');
INSERT INTO ppm_mission_action_type (id, name) VALUES (3, 'Attack');
CREATE INDEX IDX_rec_mission_plan_sample_time ON rec_mission_plan (sample_time);
COMMIT;