Compare commits
7
Commits
78bc7341fc
...
ce73cb451a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce73cb451a | ||
|
|
06846c611d | ||
|
|
62b3863257 | ||
|
|
95da21a84f | ||
|
|
7f98fedaa6 | ||
|
|
d0de5b2982 | ||
|
|
ac2e66b731 |
@@ -1,6 +1,7 @@
|
|||||||
CREATE TABLE exercises (
|
CREATE TABLE exercises (
|
||||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
|
user_id UUID REFERENCES users(id) ON DELETE CASCADE,
|
||||||
equipment TEXT[] NOT NULL DEFAULT '{}'
|
equipment TEXT[] NOT NULL DEFAULT '{}'
|
||||||
CHECK (
|
CHECK (
|
||||||
equipment <@ ARRAY [
|
equipment <@ ARRAY [
|
||||||
@@ -42,12 +43,14 @@ CREATE TABLE template_exercises (
|
|||||||
template_id UUID NOT NULL REFERENCES templates(id) ON DELETE CASCADE,
|
template_id UUID NOT NULL REFERENCES templates(id) ON DELETE CASCADE,
|
||||||
exercise_id UUID NOT NULL REFERENCES exercises(id) ON DELETE CASCADE,
|
exercise_id UUID NOT NULL REFERENCES exercises(id) ON DELETE CASCADE,
|
||||||
position SMALLINT NOT NULL,
|
position SMALLINT NOT NULL,
|
||||||
|
group_no SMALLINT,
|
||||||
target_sets SMALLINT NOT NULL,
|
target_sets SMALLINT NOT NULL,
|
||||||
target_reps SMALLINT,
|
target_reps SMALLINT,
|
||||||
target_seconds SMALLINT,
|
target_seconds SMALLINT,
|
||||||
notes TEXT,
|
notes TEXT,
|
||||||
|
modified_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
|
||||||
PRIMARY KEY (template_id, exercise_id)
|
PRIMARY KEY (template_id, exercise_id),
|
||||||
|
|
||||||
CONSTRAINT target_has_number CHECK (target_reps IS NOT NULL OR target_seconds IS NOT NULL)
|
CONSTRAINT target_has_number CHECK (target_reps IS NOT NULL OR target_seconds IS NOT NULL)
|
||||||
);
|
);
|
||||||
@@ -69,9 +72,9 @@ CREATE TABLE workouts (
|
|||||||
template_id UUID REFERENCES templates(id) ON DELETE SET NULL,
|
template_id UUID REFERENCES templates(id) ON DELETE SET NULL,
|
||||||
started_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
started_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
ended_at TIMESTAMPTZ,
|
ended_at TIMESTAMPTZ,
|
||||||
rpe smallint CHECK (rpe BETWEEN 1 AND 10),
|
notes TEXT,
|
||||||
notes TEXT
|
modified_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
modified_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
deleted_at TIMESTAMPTZ
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX workouts_time_idx ON workouts (started_at DESC);
|
CREATE INDEX workouts_time_idx ON workouts (started_at DESC);
|
||||||
@@ -85,10 +88,12 @@ CREATE TABLE workout_sets (
|
|||||||
reps SMALLINT,
|
reps SMALLINT,
|
||||||
seconds SMALLINT,
|
seconds SMALLINT,
|
||||||
weight_kg NUMERIC(5,2),
|
weight_kg NUMERIC(5,2),
|
||||||
|
rpe SMALLINT CHECK (rpe BETWEEN 1 AND 10),
|
||||||
type TEXT NOT NULL DEFAULT 'working'
|
type TEXT NOT NULL DEFAULT 'working'
|
||||||
CHECK (metric IN ('warm-up', 'working', 'drop')),
|
CHECK (type IN ('warm-up', 'working', 'drop')),
|
||||||
note TEXT,
|
note TEXT,
|
||||||
modified_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
modified_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
deleted_at TIMESTAMPTZ,
|
||||||
|
|
||||||
CONSTRAINT set_has_number CHECK (reps IS NOT NULL OR seconds IS NOT NULL)
|
CONSTRAINT set_has_number CHECK (reps IS NOT NULL OR seconds IS NOT NULL)
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user