Add schema.
This commit is contained in:
44
data/subathon.sql
Normal file
44
data/subathon.sql
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
BEGIN;
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO version_history (component, from_version, to_version, author)
|
||||||
|
VALUES ('SUBATHON', 0, 1, 'Initial Creation');
|
||||||
|
|
||||||
|
CREATE TABLE subathons(
|
||||||
|
subathon_id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||||||
|
communityid INTEGER NOT NULL REFERENCES communities(communityid),
|
||||||
|
started_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
initial_time INTEGER NOT NULL,
|
||||||
|
sub1_score NUMERIC NOT NULL DEFAULT 1,
|
||||||
|
sub2_score NUMERIC NOT NULL DEFAULT 2,
|
||||||
|
sub3_score NUMERIC NOT NULL DEFAULT 6,
|
||||||
|
bit_score NUMERIC NOT NULL,
|
||||||
|
score_time NUMERIC NOT NULL,
|
||||||
|
duration INTEGER NOT NULL DEFAULT 0,
|
||||||
|
ended_at TIMESTAMPTZ
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE running_subathons(
|
||||||
|
subathon_id INTEGER PRIMARY KEY REFERENCES subathons(subathon_id),
|
||||||
|
last_started TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE subathon_contributions(
|
||||||
|
contribution_id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||||||
|
subathon_id INTEGER NOT NULL REFERENCES subathons(subathon_id),
|
||||||
|
profileid INTEGER REFERENCES user_profiles(profileid),
|
||||||
|
score NUMERIC NOT NULL,
|
||||||
|
event_id INTEGER REFERENCES events(event_id),
|
||||||
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE subathon_goals(
|
||||||
|
goal_id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||||||
|
subathon_id INTEGER NOT NULL REFERENCES subathons(subathon_id),
|
||||||
|
required_score NUMERIC NOT NULL,
|
||||||
|
description TEXT NOT NULL,
|
||||||
|
notified BOOLEAN DEFAULT false,
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
Reference in New Issue
Block a user