Merge branch 'dev' into feature/tournament-pages

This commit is contained in:
MTG2000
2022-09-07 11:20:17 +03:00
2 changed files with 189 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
-- CreateTable
CREATE TABLE "Tournament" (
"id" SERIAL NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT NOT NULL,
"thumbnail_image" TEXT NOT NULL,
"cover_image" TEXT NOT NULL,
"start_date" DATE NOT NULL,
"end_date" DATE NOT NULL,
"location" TEXT NOT NULL,
"website" TEXT NOT NULL,
"votes_count" INTEGER NOT NULL DEFAULT 0,
CONSTRAINT "Tournament_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TournamentPrize" (
"id" SERIAL NOT NULL,
"title" TEXT NOT NULL,
"amount" TEXT NOT NULL,
"image" TEXT NOT NULL,
"tournament_id" INTEGER NOT NULL,
CONSTRAINT "TournamentPrize_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TournamentJudge" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"company" TEXT NOT NULL,
"twitter" TEXT,
"tournament_id" INTEGER NOT NULL,
CONSTRAINT "TournamentJudge_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TournamentFAQ" (
"id" SERIAL NOT NULL,
"question" TEXT NOT NULL,
"answer" TEXT NOT NULL,
"tournament_id" INTEGER NOT NULL,
CONSTRAINT "TournamentFAQ_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TournamentEvent" (
"id" SERIAL NOT NULL,
"title" TEXT NOT NULL,
"image" TEXT NOT NULL,
"description" TEXT NOT NULL,
"date" DATE NOT NULL,
"location" TEXT NOT NULL,
"website" TEXT NOT NULL,
"type" INTEGER NOT NULL,
"tournament_id" INTEGER NOT NULL,
CONSTRAINT "TournamentEvent_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TournamentParticipant" (
"tournament_id" INTEGER NOT NULL,
"user_id" INTEGER NOT NULL,
CONSTRAINT "TournamentParticipant_pkey" PRIMARY KEY ("tournament_id","user_id")
);
-- CreateTable
CREATE TABLE "TournamentProject" (
"tournament_id" INTEGER NOT NULL,
"project_id" INTEGER NOT NULL,
CONSTRAINT "TournamentProject_pkey" PRIMARY KEY ("tournament_id","project_id")
);
-- AddForeignKey
ALTER TABLE "TournamentPrize" ADD CONSTRAINT "TournamentPrize_tournament_id_fkey" FOREIGN KEY ("tournament_id") REFERENCES "Tournament"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TournamentJudge" ADD CONSTRAINT "TournamentJudge_tournament_id_fkey" FOREIGN KEY ("tournament_id") REFERENCES "Tournament"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TournamentFAQ" ADD CONSTRAINT "TournamentFAQ_tournament_id_fkey" FOREIGN KEY ("tournament_id") REFERENCES "Tournament"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TournamentEvent" ADD CONSTRAINT "TournamentEvent_tournament_id_fkey" FOREIGN KEY ("tournament_id") REFERENCES "Tournament"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TournamentParticipant" ADD CONSTRAINT "TournamentParticipant_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TournamentParticipant" ADD CONSTRAINT "TournamentParticipant_tournament_id_fkey" FOREIGN KEY ("tournament_id") REFERENCES "Tournament"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TournamentProject" ADD CONSTRAINT "TournamentProject_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "Project"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TournamentProject" ADD CONSTRAINT "TournamentProject_tournament_id_fkey" FOREIGN KEY ("tournament_id") REFERENCES "Tournament"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@@ -67,6 +67,8 @@ model User {
userKeys UserKey[]
skills Skill[]
roles UsersOnWorkRoles[]
tournaments TournamentParticipant[]
}
model UserKey {
@@ -136,6 +138,7 @@ model Project {
tags Tag[]
recruit_roles ProjectRecruitRoles[]
tournaments TournamentProject[]
}
model ProjectRecruitRoles {
@@ -272,3 +275,87 @@ model HostedImage {
createdAt DateTime @default(now())
is_used Boolean @default(false)
}
// -----------------
// Tournament
// -----------------
model Tournament {
id Int @id @default(autoincrement())
title String
description String
thumbnail_image String
cover_image String
start_date DateTime @db.Date
end_date DateTime @db.Date
location String
website String
votes_count Int @default(0)
prizes TournamentPrize[]
judges TournamentJudge[]
faqs TournamentFAQ[]
events TournamentEvent[]
participants TournamentParticipant[]
projects TournamentProject[]
}
model TournamentPrize {
id Int @id @default(autoincrement())
title String
amount String
image String
tournament Tournament @relation(fields: [tournament_id], references: [id])
tournament_id Int
}
model TournamentJudge {
id Int @id @default(autoincrement())
name String
company String
twitter String?
tournament Tournament @relation(fields: [tournament_id], references: [id])
tournament_id Int
}
model TournamentFAQ {
id Int @id @default(autoincrement())
question String
answer String
tournament Tournament @relation(fields: [tournament_id], references: [id])
tournament_id Int
}
model TournamentEvent {
id Int @id @default(autoincrement())
title String
image String
description String
date DateTime @db.Date
location String
website String
type Int
tournament Tournament @relation(fields: [tournament_id], references: [id])
tournament_id Int
}
model TournamentParticipant {
tournament Tournament @relation(fields: [tournament_id], references: [id])
tournament_id Int
user User @relation(fields: [user_id], references: [id])
user_id Int
@@id([tournament_id, user_id])
}
model TournamentProject {
tournament Tournament @relation(fields: [tournament_id], references: [id])
tournament_id Int
project Project @relation(fields: [project_id], references: [id])
project_id Int
@@id([tournament_id, project_id])
}