Added the functionality to insert a workout

This commit is contained in:
2025-07-15 13:53:05 +02:00
parent 9a8cd2ed86
commit d1029485d4
23 changed files with 847 additions and 136 deletions

View File

@@ -1,4 +1,5 @@
-- Add migration script here
CREATE TYPE exercise_variant AS ENUM ('time', 'number', 'failure');
CREATE TABLE exercises (
exercise_id uuid PRIMARY KEY,
@@ -8,8 +9,8 @@ CREATE TABLE exercises (
updated_at TIMESTAMP DEFAULT now()
);
CREATE TABLE muscle_groups (
muscle_group_id varchar(16) PRIMARY KEY,
CREATE TABLE muscles (
muscle_id varchar(16) PRIMARY KEY,
name varchar NOT NULL
);
@@ -27,19 +28,24 @@ CREATE TABLE workouts (
);
CREATE TABLE workout_exercises (
workout_exercises_id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
workout_id uuid NOT NULL,
exercise_id uuid NOT NULL,
PRIMARY KEY (workout_id, exercise_id),
exercise_type exercise_variant NOT NULL,
position integer NOT NULL,
sets integer,
reps integer,
time integer,
FOREIGN KEY (workout_id) REFERENCES workouts(workout_id) ON DELETE CASCADE,
FOREIGN KEY (exercise_id) REFERENCES exercises(exercise_id) ON DELETE CASCADE
);
CREATE TABLE exercise_muscle_groups (
CREATE TABLE exercise_muscles (
exercise_id uuid NOT NULL,
muscle_group_id varchar(16) NOT NULL,
PRIMARY KEY (exercise_id, muscle_group_id),
muscle_id varchar(16) NOT NULL,
PRIMARY KEY (exercise_id, muscle_id),
FOREIGN KEY (exercise_id) REFERENCES exercises(exercise_id) ON DELETE CASCADE,
FOREIGN KEY (muscle_group_id) REFERENCES muscle_groups(muscle_group_id) ON DELETE CASCADE
FOREIGN KEY (muscle_id) REFERENCES muscles(muscle_id) ON DELETE CASCADE
);
CREATE TABLE exercise_categories (
@@ -52,10 +58,11 @@ CREATE TABLE exercise_categories (
-- Initialize muscle data
INSERT INTO muscle_groups (muscle_group_id, name) VALUES
INSERT INTO muscles (muscle_id, name) VALUES
('chest', 'Chest'),
('back', 'Back'),
('arms', 'Arms'),
('biceps', 'Biceps'),
('triceps', 'Triceps'),
('legs', 'Legs'),
('shoulders', 'Shoulders');