160 lines
2.5 KiB
SQL
160 lines
2.5 KiB
SQL
CREATE TABLE controllers
|
|
(
|
|
id
|
|
INTEGER
|
|
PRIMARY KEY
|
|
AUTOINCREMENT
|
|
NOT NULL,
|
|
uid
|
|
BLOB
|
|
NOT NULL
|
|
UNIQUE,
|
|
name
|
|
VARCHAR(128)
|
|
NOT NULL,
|
|
relay_count
|
|
INTEGER
|
|
NOT NULL,
|
|
active
|
|
BOOLEAN
|
|
NOT NULL
|
|
DEFAULT false
|
|
);
|
|
|
|
CREATE TABLE relays
|
|
(
|
|
id
|
|
INTEGER
|
|
PRIMARY KEY
|
|
AUTOINCREMENT
|
|
NOT NULL,
|
|
name
|
|
VARCHAR(128)
|
|
NOT NULL,
|
|
number
|
|
INTEGER
|
|
NOT NULL,
|
|
controller_id
|
|
INTEGER
|
|
NOT NULL
|
|
REFERENCES controllers (id)
|
|
ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE schedules
|
|
(
|
|
id
|
|
INTEGER
|
|
PRIMARY KEY
|
|
AUTOINCREMENT
|
|
NOT NULL,
|
|
uid
|
|
BLOB
|
|
NOT NULL
|
|
UNIQUE,
|
|
name
|
|
VARCHAR(128)
|
|
NOT NULL,
|
|
periods
|
|
BLOB
|
|
NOT NULL
|
|
);
|
|
|
|
CREATE TABLE tags
|
|
(
|
|
id
|
|
INTEGER
|
|
PRIMARY KEY
|
|
AUTOINCREMENT
|
|
NOT NULL,
|
|
tag
|
|
VARCHAR(128)
|
|
NOT NULL
|
|
UNIQUE
|
|
);
|
|
|
|
CREATE TABLE junction_tag
|
|
(
|
|
id
|
|
INTEGER
|
|
PRIMARY KEY
|
|
AUTOINCREMENT
|
|
NOT NULL,
|
|
tag_id
|
|
INTEGER
|
|
NOT NULL
|
|
REFERENCES tags (id)
|
|
ON DELETE CASCADE,
|
|
relay_id
|
|
INTEGER
|
|
REFERENCES relays (id)
|
|
ON DELETE CASCADE,
|
|
schedule_id
|
|
INTEGER
|
|
REFERENCES schedules (id)
|
|
ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE junction_relay_schedule
|
|
(
|
|
id
|
|
INTEGER
|
|
PRIMARY KEY
|
|
AUTOINCREMENT
|
|
NOT NULL,
|
|
weekday
|
|
SMALLINT
|
|
NOT NULL,
|
|
relay_id
|
|
INTEGER
|
|
REFERENCES relays (id)
|
|
ON DELETE CASCADE,
|
|
schedule_id
|
|
INTEGER
|
|
DEFAULT 1
|
|
REFERENCES schedules (id)
|
|
ON DELETE SET DEFAULT
|
|
);
|
|
|
|
CREATE TABLE macros
|
|
(
|
|
id
|
|
INTEGER
|
|
PRIMARY KEY
|
|
AUTOINCREMENT
|
|
NOT NULL,
|
|
uid
|
|
VARCHAR(36)
|
|
NOT NULL
|
|
UNIQUE,
|
|
name
|
|
VARCHAR(128)
|
|
NOT NULL
|
|
);
|
|
|
|
CREATE TABLE macro_actions
|
|
(
|
|
id
|
|
INTEGER
|
|
PRIMARY KEY
|
|
AUTOINCREMENT
|
|
NOT NULL,
|
|
macro_id
|
|
INTEGER
|
|
NOT NULL
|
|
REFERENCES macros (id)
|
|
ON DELETE CASCADE,
|
|
relay_id
|
|
INTEGER
|
|
NOT NULL
|
|
REFERENCES relays (id)
|
|
ON DELETE CASCADE,
|
|
schedule_id
|
|
INTEGER
|
|
NOT NULL
|
|
REFERENCES schedules (id)
|
|
ON DELETE CASCADE,
|
|
weekday
|
|
SMALLINT
|
|
NOT NULL
|
|
);
|