X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=scripts%2Finit.sql;h=b2979a5e1dffeedf0445ef65e6a675ec50e9bfce;hb=f8148a40996d64878431ac59d47650741e1d79c5;hp=341f2abee87b58b432e7513719a70b74209a758a;hpb=8bbb9ac156bdca7b9dd015b62db3f07f1e7a9e17;p=plomtask
diff --git a/scripts/init.sql b/scripts/init.sql
index 341f2ab..b2979a5 100644
--- a/scripts/init.sql
+++ b/scripts/init.sql
@@ -1,34 +1,112 @@
+CREATE TABLE condition_descriptions (
+ parent INTEGER NOT NULL,
+ timestamp TEXT NOT NULL,
+ description TEXT NOT NULL,
+ PRIMARY KEY (parent, timestamp),
+ FOREIGN KEY (parent) REFERENCES conditions(id)
+);
+CREATE TABLE condition_titles (
+ parent INTEGER NOT NULL,
+ timestamp TEXT NOT NULL,
+ title TEXT NOT NULL,
+ PRIMARY KEY (parent, timestamp),
+ FOREIGN KEY (parent) REFERENCES conditions(id)
+);
+CREATE TABLE conditions (
+ id INTEGER PRIMARY KEY,
+ is_active BOOLEAN NOT NULL
+);
CREATE TABLE days (
- date TEXT PRIMARY KEY,
+ id TEXT PRIMARY KEY,
comment TEXT NOT NULL
);
-CREATE TABLE process_children (
- parent_id INTEGER NOT NULL,
- child_id INTEGER NOT NULL,
- FOREIGN KEY (parent_id) REFERENCES processes(id),
- FOREIGN KEY (child_id) REFERENCES processes(id)
+CREATE TABLE process_conditions (
+ process INTEGER NOT NULL,
+ condition INTEGER NOT NULL,
+ PRIMARY KEY (process, condition),
+ FOREIGN KEY (process) REFERENCES processes(id),
+ FOREIGN KEY (condition) REFERENCES conditions(id)
);
CREATE TABLE process_descriptions (
- process_id INTEGER NOT NULL,
+ parent INTEGER NOT NULL,
timestamp TEXT NOT NULL,
description TEXT NOT NULL,
- PRIMARY KEY (process_id, timestamp),
- FOREIGN KEY (process_id) REFERENCES processes(id)
+ PRIMARY KEY (parent, timestamp),
+ FOREIGN KEY (parent) REFERENCES processes(id)
+);
+CREATE TABLE process_disables (
+ process INTEGER NOT NULL,
+ condition INTEGER NOT NULL,
+ PRIMARY KEY(process, condition),
+ FOREIGN KEY (process) REFERENCES processes(id),
+ FOREIGN KEY (condition) REFERENCES conditions(id)
);
CREATE TABLE process_efforts (
- process_id INTEGER NOT NULL,
+ parent INTEGER NOT NULL,
timestamp TEXT NOT NULL,
effort REAL NOT NULL,
- PRIMARY KEY (process_id, timestamp),
- FOREIGN KEY (process_id) REFERENCES processes(id)
+ PRIMARY KEY (parent, timestamp),
+ FOREIGN KEY (parent) REFERENCES processes(id)
+);
+CREATE TABLE process_enables (
+ process INTEGER NOT NULL,
+ condition INTEGER NOT NULL,
+ PRIMARY KEY(process, condition),
+ FOREIGN KEY (process) REFERENCES processes(id),
+ FOREIGN KEY (condition) REFERENCES conditions(id)
+);
+CREATE TABLE process_steps (
+ id INTEGER PRIMARY KEY,
+ owner INTEGER NOT NULL,
+ step_process INTEGER NOT NULL,
+ parent_step INTEGER,
+ FOREIGN KEY (owner) REFERENCES processes(id),
+ FOREIGN KEY (step_process) REFERENCES processes(id),
+ FOREIGN KEY (parent_step) REFERENCES process_steps(step_id)
);
CREATE TABLE process_titles (
- process_id INTEGER NOT NULL,
+ parent INTEGER NOT NULL,
timestamp TEXT NOT NULL,
title TEXT NOT NULL,
- PRIMARY KEY (process_id, timestamp),
- FOREIGN KEY (process_id) REFERENCES processes(id)
+ PRIMARY KEY (parent, timestamp),
+ FOREIGN KEY (parent) REFERENCES processes(id)
);
CREATE TABLE processes (
id INTEGER PRIMARY KEY
);
+CREATE TABLE todo_children (
+ parent INTEGER NOT NULL,
+ child INTEGER NOT NULL,
+ PRIMARY KEY (parent, child),
+ FOREIGN KEY (parent) REFERENCES todos(id),
+ FOREIGN KEY (child) REFERENCES todos(id)
+);
+CREATE TABLE todo_conditions (
+ todo INTEGER NOT NULL,
+ condition INTEGER NOT NULL,
+ PRIMARY KEY(todo, condition),
+ FOREIGN KEY (todo) REFERENCES todos(id),
+ FOREIGN KEY (condition) REFERENCES conditions(id)
+);
+CREATE TABLE todo_disables (
+ todo INTEGER NOT NULL,
+ condition INTEGER NOT NULL,
+ PRIMARY KEY(todo, condition),
+ FOREIGN KEY (todo) REFERENCES todos(id),
+ FOREIGN KEY (condition) REFERENCES conditions(id)
+);
+CREATE TABLE todo_enables (
+ todo INTEGER NOT NULL,
+ condition INTEGER NOT NULL,
+ PRIMARY KEY(todo, condition),
+ FOREIGN KEY (todo) REFERENCES todos(id),
+ FOREIGN KEY (condition) REFERENCES conditions(id)
+);
+CREATE TABLE todos (
+ id INTEGER PRIMARY KEY,
+ process INTEGER NOT NULL,
+ is_done BOOLEAN NOT NULL,
+ day TEXT NOT NULL,
+ FOREIGN KEY (process) REFERENCES processes(id),
+ FOREIGN KEY (day) REFERENCES days(id)
+);