Initial commit

This commit is contained in:
Magnus Åhall 2024-04-29 08:36:13 +02:00
commit 89f483171a
43 changed files with 2245 additions and 0 deletions

10
sql/00001.sql Normal file
View file

@ -0,0 +1,10 @@
CREATE TYPE datapoint_type AS ENUM('INT', 'STRING', 'DATETIME');
CREATE TABLE public.datapoint (
"id" serial NOT NULL,
"name" varchar NOT NULL,
"datatype" datapoint_type NOT NULL,
"last_value" timestamptz DEFAULT '1970-01-01 00:00:00+00' NOT NULL,
CONSTRAINT datapoint_pk PRIMARY KEY (id),
CONSTRAINT datapoint_unique UNIQUE ("name")
);

10
sql/00002.sql Normal file
View file

@ -0,0 +1,10 @@
CREATE TABLE public.datapoint_value (
id serial8 NOT NULL,
datapoint_id int4 NOT NULL,
ts timestamptz DEFAULT NOW() NOT NULL,
value_int int8 NULL,
value_string varchar NULL,
value_datetime timestamptz NULL,
CONSTRAINT datapoint_value_pk PRIMARY KEY (id),
CONSTRAINT datapoint_value_datapoint_fk FOREIGN KEY (datapoint_id) REFERENCES public.datapoint(id) ON DELETE CASCADE ON UPDATE CASCADE
);

13
sql/00003.sql Normal file
View file

@ -0,0 +1,13 @@
CREATE TABLE public.area (
id serial NOT NULL,
name varchar NOT NULL,
CONSTRAINT area_pk PRIMARY KEY (id)
);
CREATE TABLE public.section (
id serial NOT NULL,
name varchar NOT NULL,
area_id int4 NOT NULL,
CONSTRAINT section_pk PRIMARY KEY (id),
CONSTRAINT section_area_fk FOREIGN KEY (area_id) REFERENCES public.area(id) ON DELETE RESTRICT ON UPDATE RESTRICT
);

2
sql/00004.sql Normal file
View file

@ -0,0 +1,2 @@
ALTER TABLE public.datapoint ADD section_id int4 NULL;
ALTER TABLE public.datapoint ADD CONSTRAINT datapoint_section_fk FOREIGN KEY (section_id) REFERENCES public."section"(id) ON DELETE SET NULL ON UPDATE SET NULL;

11
sql/00005.sql Normal file
View file

@ -0,0 +1,11 @@
CREATE TABLE public.trigger (
id serial NOT NULL,
name varchar NOT NULL,
section_id int4 NOT NULL,
expression varchar NOT NULL,
datapoints jsonb NOT NULL DEFAULT '[]',
CONSTRAINT trigger_pk PRIMARY KEY (id),
CONSTRAINT trigger_section_fk FOREIGN KEY (section_id) REFERENCES public.section(id) ON DELETE RESTRICT ON UPDATE RESTRICT
);