finalized migrations
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,2 +1,7 @@
|
|||||||
/target
|
/target
|
||||||
/postgres-data
|
/postgres-data
|
||||||
|
|
||||||
|
.env*
|
||||||
|
.log*
|
||||||
|
.out*
|
||||||
|
.tmp*
|
||||||
|
|||||||
@@ -1,10 +1,69 @@
|
|||||||
-- Add migration script here
|
-- Add migration script here
|
||||||
|
|
||||||
CREATE TABLE users (
|
CREATE TABLE users (
|
||||||
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
real_name VARCHAR(255) NOT NULL,
|
real_name VARCHAR(255) NOT NULL,
|
||||||
username VARCHAR(255) NOT NULL UNIQUE,
|
username VARCHAR(255) NOT NULL UNIQUE,
|
||||||
email VARCHAR(255) NOT NULL,
|
email VARCHAR(255) NOT NULL,
|
||||||
password_hash VARCHAR(255) NOT NULL,
|
password_hash VARCHAR(255) NOT NULL,
|
||||||
|
is_admin BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
created_at TIMESTAMP NOT NULL DEFAULT NOW()
|
created_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE muscles (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
name VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE body_parts (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
name VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE muscle_bodypart_relations (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
muscle_id UUID NOT NULL REFERENCES muscles(id),
|
||||||
|
body_part_id UUID NOT NULL REFERENCES body_parts(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TYPE exercise_type AS ENUM (
|
||||||
|
'dumbbell',
|
||||||
|
'barbell',
|
||||||
|
'bodyweight',
|
||||||
|
'machine',
|
||||||
|
'kettlebell',
|
||||||
|
'resistance_band',
|
||||||
|
'cable',
|
||||||
|
'medicine_ball',
|
||||||
|
'plyometric',
|
||||||
|
'plate_loaded_machine'
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE exercises (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
exercise_type exercise_type NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE exercise_muscle_relations (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
exercise_id UUID NOT NULL REFERENCES exercises(id),
|
||||||
|
muscle_id UUID NOT NULL REFERENCES muscles(id),
|
||||||
|
is_primary BOOLEAN NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE workouts (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
user_id UUID NOT NULL REFERENCES users(id),
|
||||||
|
start_time TIMESTAMP NOT NULL,
|
||||||
|
end_time TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE user_sets (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
user_id UUID NOT NULL REFERENCES users(id),
|
||||||
|
exercise_id UUID NOT NULL REFERENCES exercises(id),
|
||||||
|
workout_id UUID NOT NULL REFERENCES workouts(id),
|
||||||
|
reps INTEGER NOT NULL CHECK (reps > 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user