aboutsummaryrefslogtreecommitdiffstats
path: root/db.py
diff options
context:
space:
mode:
Diffstat (limited to 'db.py')
-rw-r--r--db.py51
1 files changed, 37 insertions, 14 deletions
diff --git a/db.py b/db.py
index fa407d8..a5f3250 100644
--- a/db.py
+++ b/db.py
@@ -4,38 +4,61 @@ import os
DB_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "egometrics.db")
SCHEMA = """
-CREATE TABLE IF NOT EXISTS exercises (
+CREATE TABLE IF NOT EXISTS workout_exercises (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE COLLATE NOCASE,
+ bw_relative BOOLEAN NOT NULL DEFAULT 0,
note TEXT
);
-CREATE TABLE IF NOT EXISTS sessions (
+CREATE TABLE IF NOT EXISTS workout_sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date_time TEXT NOT NULL,
note TEXT
);
-CREATE TABLE IF NOT EXISTS session_exercises (
+CREATE TABLE IF NOT EXISTS workout_session_exercises (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id INTEGER NOT NULL,
exercise_id INTEGER NOT NULL,
position INTEGER NOT NULL,
- sets INTEGER,
- reps INTEGER,
- rpe INTEGER,
- rest_time INTEGER,
- lsrpe INTEGER,
+ sets INTEGER NOT NULL,
+ reps TEXT NOT NULL,
+ weight TEXT NOT NULL,
+ rest_time TEXT,
+ lsrpe INTEGER NOT NULL,
note TEXT,
- FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
- FOREIGN KEY (exercise_id) REFERENCES exercises(id) ON DELETE RESTRICT
+ FOREIGN KEY (session_id) REFERENCES workout_sessions(id) ON DELETE CASCADE,
+ FOREIGN KEY (exercise_id) REFERENCES workout_exercises(id) ON DELETE RESTRICT
);
-CREATE INDEX IF NOT EXISTS idx_session_exercises_session
- ON session_exercises(session_id);
+CREATE TABLE IF NOT EXISTS workout_templates (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ name TEXT NOT NULL UNIQUE COLLATE NOCASE
+);
+
+CREATE TABLE IF NOT EXISTS workout_template_exercises (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ template_id INTEGER NOT NULL,
+ exercise_id INTEGER NOT NULL,
+ position INTEGER NOT NULL,
+ sets INTEGER NOT NULL,
+ reps INTEGER NOT NULL,
+ lsrpe INTEGER NOT NULL,
+ rest_time INTEGER NOT NULL,
+ note TEXT,
+ FOREIGN KEY (template_id) REFERENCES workout_templates(id) ON DELETE CASCADE,
+ FOREIGN KEY (exercise_id) REFERENCES workout_exercises(id) ON DELETE RESTRICT
+);
+
+CREATE INDEX IF NOT EXISTS idx_workout_session_exercises_session
+ ON workout_session_exercises(session_id);
+
+CREATE INDEX IF NOT EXISTS idx_workout_sessions_date
+ ON workout_sessions(date_time);
-CREATE INDEX IF NOT EXISTS idx_sessions_date
- ON sessions(date_time);
+CREATE INDEX IF NOT EXISTS idx_workout_template_exercises_template
+ ON workout_template_exercises(template_id);
"""