Files
krafttrainer/backend/migrations/003_create_sessions.up.sql
Christoph K. dfd66e43c6 Initial commit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 15:03:55 +01:00

26 lines
1.1 KiB
SQL
Executable File

CREATE TABLE sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
set_id INTEGER NOT NULL REFERENCES training_sets(id),
started_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
ended_at DATETIME,
note TEXT DEFAULT ''
);
CREATE TABLE session_logs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id INTEGER NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
exercise_id INTEGER NOT NULL REFERENCES exercises(id),
exercise_name TEXT NOT NULL,
set_number INTEGER NOT NULL CHECK(set_number >= 1),
weight_kg REAL NOT NULL CHECK(weight_kg >= 0 AND weight_kg <= 999),
reps INTEGER NOT NULL CHECK(reps >= 0 AND reps <= 999),
note TEXT DEFAULT '',
logged_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE(session_id, exercise_id, set_number)
);
CREATE INDEX idx_sessions_set_id ON sessions(set_id);
CREATE INDEX idx_sessions_started_at ON sessions(started_at);
CREATE INDEX idx_session_logs_session_id ON session_logs(session_id);
CREATE INDEX idx_session_logs_exercise_id ON session_logs(exercise_id);