diff --git a/GDSC (1).sql b/GDSC (1).sql deleted file mode 100644 index 8dd7ed2..0000000 --- a/GDSC (1).sql +++ /dev/null @@ -1,85 +0,0 @@ -CREATE TYPE "setting_type" AS ENUM ( - 'active_generation' -); - -CREATE TYPE "division_type" AS ENUM ( - 'LEAD', - 'COLEAD', - 'DIVISION' -); - -CREATE TABLE "roles" ( - "id" uuid PRIMARY KEY DEFAULT (uuid_generate_v4()), - "name" varchar(255) NOT NULL, - "created_at" timestamp NOT NULL DEFAULT (now()) -); - -CREATE TABLE "divisions" ( - "id" uuid PRIMARY KEY DEFAULT (uuid_generate_v4()), - "name" varchar(255) NOT NULL, - "generation_id" uuid NOT NULL, - "type" division_type, - "created_at" timestamp NOT NULL DEFAULT (now()) -); - -CREATE TABLE "settings" ( - "value" varchar(255), - "related_id" uuid, - "setting_type" setting_type UNIQUE NOT NULL -); - -CREATE TABLE "generations" ( - "id" uuid PRIMARY KEY DEFAULT (uuid_generate_v4()), - "year" varchar(4) UNIQUE NOT NULL, - "created_at" timestamp NOT NULL DEFAULT (now()) -); - -CREATE TABLE "core_teams" ( - "division_id" uuid PRIMARY KEY NOT NULL, - "member_id" uuid NOT NULL -); - -CREATE TABLE "members" ( - "id" uuid PRIMARY KEY DEFAULT (uuid_generate_v4()), - "full_name" varchar(255) NOT NULL, - "university" varchar(255) NOT NULL DEFAULT 'Sriwijaya University', - "role_id" uuid NOT NULL, - "division_id" uuid NOT NULL, - "picture_path" varchar(255), - "created_at" timestamp NOT NULL DEFAULT (now()), - "deleted_at" timestamp DEFAULT (now()), - "generation_id" uuid NOT NULL -); - -CREATE TABLE "messages" ( - "id" uuid PRIMARY KEY DEFAULT (uuid_generate_v4()), - "full_name" varchar(255), - "phone_number" varchar(18), - "question" TEXT, - "created_at" timestamp NOT NULL DEFAULT (now()), - "deleted_at" timestamp DEFAULT (now()) -); - -ALTER TABLE "members" ADD FOREIGN KEY ("role_id") REFERENCES "roles" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; - -ALTER TABLE "members" ADD FOREIGN KEY ("division_id") REFERENCES "divisions" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; - -ALTER TABLE "members" ADD FOREIGN KEY ("generation_id") REFERENCES "generations" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; - -ALTER TABLE "divisions" ADD FOREIGN KEY ("generation_id") REFERENCES "generations" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; - -ALTER TABLE "core_teams" ADD FOREIGN KEY ("division_id") REFERENCES "divisions" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; - -ALTER TABLE "core_teams" ADD FOREIGN KEY ("member_id") REFERENCES "members" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; - -CREATE INDEX ON "settings" ("setting_type"); - -CREATE INDEX ON "generations" ("year"); - -CREATE INDEX ON "core_teams" ("division_id"); - -CREATE INDEX ON "core_teams" ("member_id"); - -CREATE INDEX ON "members" ("full_name"); - -CREATE INDEX ON "messages" ("full_name"); diff --git a/GDSC.sql b/GDSC.sql index b7e59d5..904645c 100644 --- a/GDSC.sql +++ b/GDSC.sql @@ -1,83 +1,99 @@ CREATE TYPE "setting_type" AS ENUM ( - 'active_generation' + 'active_generation' ); CREATE TYPE "division_type" AS ENUM ( - 'LEAD', - 'COLEAD', - 'DIVISION' + 'LEAD', + 'COLEAD', + 'DIVISION' ); CREATE TABLE "roles" ( - "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), - "name" varchar(255) NOT NULL, - "created_at" timestamp NOT NULL DEFAULT (NOW()) + "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), + "name" varchar(255) NOT NULL, + "created_at" timestamp NOT NULL DEFAULT (NOW()) ); CREATE TABLE "divisions" ( - "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), - "name" varchar(255) NOT NULL, - "generation_id" uuid NOT NULL, - "type" division_type, - "created_at" timestamp NOT NULL DEFAULT (NOW()) + "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), + "name" varchar(255) NOT NULL, + "generation_id" uuid NOT NULL, + "type" division_type, + "created_at" timestamp NOT NULL DEFAULT (NOW()) ); CREATE TABLE "settings" ( - "value" varchar(255), - "related_id" uuid, - "setting_type" setting_type UNIQUE NOT NULL + "value" varchar(255), + "related_id" uuid, + "setting_type" setting_type UNIQUE NOT NULL ); CREATE TABLE "generations" ( - "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), - "year" varchar(4) UNIQUE NOT NULL, - "created_at" timestamp NOT NULL DEFAULT (NOW()) + "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), + "year" varchar(4) UNIQUE NOT NULL, + "created_at" timestamp NOT NULL DEFAULT (NOW()) ); CREATE TABLE "core_teams" ( - "division_id" uuid PRIMARY KEY NOT NULL, - "member_id" uuid NOT NULL + "division_id" uuid PRIMARY KEY NOT NULL, + "member_id" uuid NOT NULL ); CREATE TABLE "members" ( - "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), - "full_name" varchar(255) NOT NULL, - "university" varchar(255) NOT NULL DEFAULT 'Sriwijaya University', - "role_id" uuid NOT NULL, - "division_id" uuid NOT NULL, - "picture_path" varchar(255), - "created_at" timestamp NOT NULL DEFAULT (NOW()), - "deleted_at" timestamp DEFAULT (NOW()) + "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), + "full_name" varchar(255) NOT NULL, + "university" varchar(255) NOT NULL DEFAULT 'Sriwijaya University', + "role_id" uuid NOT NULL, + "division_id" uuid NOT NULL, + "picture_path" varchar(255), + "created_at" timestamp NOT NULL DEFAULT (NOW()), + "deleted_at" timestamp DEFAULT (NOW()) ); CREATE TABLE "messages" ( - "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), - "full_name" varchar(255), - "phone_number" varchar(18), - "question" text, - "created_at" timestamp NOT NULL DEFAULT (NOW()), - "deleted_at" timestamp DEFAULT (NOW()) + "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), + "full_name" varchar(255), + "phone_number" varchar(18), + "question" text, + "created_at" timestamp NOT NULL DEFAULT (NOW()), + "deleted_at" timestamp DEFAULT (NOW()) ); -ALTER TABLE "members" - ADD FOREIGN KEY ("role_id") REFERENCES "roles" ("id") ON DELETE - RESTRICT ON UPDATE RESTRICT; +CREATE TABLE "event_groups" ( + "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), + "group_name" varchar(255) NOT NULL +); + +CREATE TABLE "events" ( + "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), + "title" varchar(255) NOT NULL, + "desc" text NOT NULL, + "speakers" varchar(255)[] NOT NULL, + "event_time" timestamp NOT NULL, + "group_id" uuid NOT NULL, + "resource_links" varchar(255)[] +); + +CREATE TABLE "event_timestamps" ( + "id" uuid PRIMARY KEY DEFAULT (UUID_GENERATE_V4()), + "time" timestamp NOT NULL, + "event_id" uuid NOT NULL, + "agenda" varchar(255) +); -ALTER TABLE "members" - ADD FOREIGN KEY ("division_id") REFERENCES "divisions" ("id") ON DELETE - RESTRICT ON UPDATE RESTRICT; +ALTER TABLE "members" ADD FOREIGN KEY ("role_id") REFERENCES "roles" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; -ALTER TABLE "divisions" - ADD FOREIGN KEY ("generation_id") REFERENCES "generations" ("id") ON - DELETE RESTRICT ON UPDATE RESTRICT; +ALTER TABLE "members" ADD FOREIGN KEY ("division_id") REFERENCES "divisions" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; -ALTER TABLE "core_teams" - ADD FOREIGN KEY ("division_id") REFERENCES "divisions" ("id") ON DELETE - RESTRICT ON UPDATE RESTRICT; +ALTER TABLE "divisions" ADD FOREIGN KEY ("generation_id") REFERENCES "generations" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; -ALTER TABLE "core_teams" - ADD FOREIGN KEY ("member_id") REFERENCES "members" ("id") ON DELETE - RESTRICT ON UPDATE RESTRICT; +ALTER TABLE "core_teams" ADD FOREIGN KEY ("division_id") REFERENCES "divisions" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE "core_teams" ADD FOREIGN KEY ("member_id") REFERENCES "members" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE "events" ADD FOREIGN KEY ("group_id") REFERENCES "event_groups" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE "event_timestamps" ADD FOREIGN KEY ("event_id") REFERENCES "events" ("id"); CREATE INDEX ON "settings" ("setting_type"); @@ -90,3 +106,7 @@ CREATE INDEX ON "core_teams" ("member_id"); CREATE INDEX ON "members" ("full_name"); CREATE INDEX ON "messages" ("full_name"); + +CREATE INDEX ON "events" ("group_id"); + +CREATE INDEX ON "event_timestamps" ("event_id");